Skip to content
VDS · सुरक्षा

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 बचा हुआ ब्रूट-फ़ोर्स शोर हटा देगा।