SSH मज़बूत करना: की, पोर्ट, प्रतिबंध
sshd कैसे कॉन्फ़िगर करें: सिर्फ़ की से लॉगिन, यूज़र और एड्रेस पर प्रतिबंध, पोर्ट बदलना, और इस दौरान एक्सेस कैसे न खोएँ।
23 अगस्त 2026 को अपडेट किया गया
SSH ही आपकी रोज़ाना इस्तेमाल होने वाली मशीन का एकमात्र दरवाज़ा है, और ऑटोमेटेड ब्रूट-फ़ोर्स हमलों का मुख्य निशाना भी। आप इसे एक बार कॉन्फ़िगर करते हैं, और उसके बाद इसे किसी ध्यान की ज़रूरत नहीं होती।
सारे बदलाव एक अलग फ़ाइल, /etc/ssh/sshd_config.d/99-hardening.conf में करें — इस तरह पैकेज अपडेट आपका काम ओवरराइट नहीं करेगा और आप बिना एक्सेस के नहीं रह जाएँगे।
पासवर्ड की जगह कीज़
PasswordAuthentication no
PubkeyAuthentication yes
KbdInteractiveAuthentication no
PermitEmptyPasswords no
लागू करने से पहले पक्का करें कि कीज़ वाकई काम करती हैं: एक अलग विंडो में उससे लॉग इन करें। /hosting/vds/m/<id> पैनल के “Access” टैब में जोड़ी गई कीज़ root यूज़र में जाती हैं; बाकी यूज़र्स के लिए आपको उन्हें खुद ~/.ssh/authorized_keys में डालना होगा।
अपनी तरफ़ कीज़ बनाना:
ssh-keygen -t ed25519 -C "work laptop"
ed25519 RSA से छोटी और तेज़ है। अगर आपका टूल इसे सपोर्ट नहीं करता, तो कम से कम 4096 बिट लंबाई वाली rsa इस्तेमाल करें।
कौन लॉग इन कर सकता है
PermitRootLogin prohibit-password
AllowUsers artem deploy
MaxAuthTries 3
LoginGraceTime 20
ClientAliveInterval 300
ClientAliveCountMax 2
पासवर्ड बंद करने के बाद AllowUsers सबसे असरदार नियम है: दूसरों के नाम ब्रूट-फ़ोर्स करना तुरंत बंद हो जाता है। root के बारे में ज़्यादा — पासवर्ड से root लॉगिन बंद करें।
अगर आप एक तय जगह से काम करते हैं, तो पते पर रोक:
Match Address 203.0.113.5
PermitRootLogin yes
पोर्ट बदलना
SSH को 22 से हटाकर किसी नॉन-स्टैंडर्ड पोर्ट पर ले जाना आपको टार्गेटेड हमले से नहीं बचाता, लेकिन आपके लॉग्स में ऑटोमेटेड स्कैनरों का लगभग सारा शोर हटा देता है।
Port 2222
स्टेप्स का क्रम बिल्कुल यही है:
ufw allow 2222/tcp
sshd -t
systemctl restart ssh
ssh -p 2222 artem@<address>
ufw delete allow 22/tcp
फ़ायरवॉल नियम रीस्टार्ट से पहले, और पुराना नियम हटाना सिर्फ़ नए पोर्ट पर सफल लॉगिन के बाद। यह भी देखें — पोर्ट्स।
लागू करना और जाँचना
sshd -t
sshd -T | grep -Ei "passwordauth|permitroot|allowusers|port"
systemctl restart ssh
sshd -t सिंटैक्स जाँचता है, sshd -T अंतिम प्रभावी कॉन्फ़िगरेशन दिखाता है — वही, जो फ़ाइल में आपने लिखा है वह नहीं।
कॉन्फ़िगर करते समय अपना मौजूदा सेशन खुला रखें। यह sshd रीस्टार्ट के बाद भी बना रहता है, और इसी के ज़रिए आप नाकाम बदलाव वापस पलट सकते हैं। अगर आप खुद को लॉक आउट कर लें — पैनल का “Console” टैब SSH से अलग, स्वतंत्र रूप से काम करता है।
आम गलतियाँ
| गलती | नतीजा | ठीक करने का तरीका |
|---|---|---|
| कीज़ टेस्ट किए बिना पासवर्ड बंद करना | नेटवर्क एक्सेस पूरी तरह खत्म | पैनल कंसोल से लॉग इन करें और सेटिंग बहाल करें |
sshd_config.d की लाइन के ऊपर मुख्य फ़ाइल में बदलाव | सेटिंग लागू ही नहीं होती | sshd -T से जाँचें |
| ufw नियम के बिना पोर्ट बदलना | एक्सेस खत्म | पहले नियम, फिर पोर्ट |
~/.ssh पर 700 से ज़्यादा खुली परमिशन | कीज़ चुपचाप नज़रअंदाज़ हो जाती हैं | chmod 700 ~/.ssh, chmod 600 authorized_keys |
अपना नाम डाले बिना AllowUsers | आप खुद लॉक आउट हो जाते हैं | पैनल कंसोल, फ़ाइल एडिट करें |
sshd_configमें किसी पैरामीटर की पहली मौजूदगी जीतती है, औरsshd_config.dकी फ़ाइलें शुरुआत में शामिल होती हैं। इसलिए फ़ाइल पढ़ने के बजाय नतीजाsshd -Tसे जाँचें।
fail2ban बचा हुआ ब्रूट-फ़ोर्स शोर हटा देगा।