Linux VPS पर SSH कैसे सुरक्षित करें

... ... · 12 નવેમ્બર, 2026 ના રોજ અપડેટ કરવામાં આવ્યું · 4 મિનિટ વાંચન

सार्वजनिक VPS ऑनलाइन होने के कुछ ही मिनटों में स्वचालित लॉगिन प्रयास प्राप्त करने लगता है। नीचे दिए चरण SSH पर हमलों को कहीं ज़्यादा कठिन बनाते हैं। ये चरण Ubuntu या Debian के लिए लिखे गए हैं; अगर आपने अभी तक सर्वर नहीं बनाया है, तो आप Linux VPS किराये पर लें और एक साफ़ image से शुरुआत करें। नई सेटिंग्स को दूसरी विंडो से जांचने तक अपना मौजूदा SSH session खुला रखें।

1. sudo के साथ सामान्य उपयोगकर्ता बनाएं

adduser deploy
usermod -aG sudo deploy

2. Password की जगह SSH keys इस्तेमाल करें

अपने कंप्यूटर पर:

ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IP

Password बंद करने से पहले एक बार key से लॉगिन करके पुष्टि कर लें कि वह काम करती है।

3. Password और root login बंद करें

/etc/ssh/sshd_config.d/99-hardening.conf बनाएं:

PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3

Syntax जांचें और सेवा को reload करें। Ubuntu और Debian पर सेवा का नाम ssh है, जबकि RHEL-आधारित प्रणालियों पर sshd:

sudo sshd -t && sudo systemctl reload ssh

दूसरा terminal खोलकर फिर से लॉगिन करें। इसके बाद ही पुराना session बंद करें।

4. Firewall चालू करें

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose

केवल वही ports खोलें जिनकी आपको ज़रूरत है, जैसे वेब सर्वर के लिए 80 और 443। आप cloud console में firewall rule बनाकर SSH को अपने IP address तक सीमित भी कर सकते हैं।

5. Fail2ban से बार-बार होने वाली विफलताएं रोकें

sudo apt install -y fail2ban

/etc/fail2ban/jail.local बनाएं:

[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1h
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

6. सुरक्षा अपडेट स्वचालित रूप से इंस्टॉल करें

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

7. वैकल्पिक अतिरिक्त कदम

  • SSH port बदलने से log का शोर कम होता है, लेकिन यह अपने आप में सुरक्षा उपाय नहीं है।
  • Private key को passphrase से सुरक्षित रखें और उसकी backup किसी सुरक्षित जगह रखें।
  • last और sudo journalctl -u ssh --since today से लॉगिन की समीक्षा करें।
  • सर्वर कॉन्फ़िगर होने के बाद एक snapshot लें, ताकि आप साफ़ आधार-स्थिति पर वापस जा सकें।

अगर आप बाहर बंद हो गए हैं, तो अपने cloud panel के browser console से लॉगिन करके कॉन्फ़िगरेशन ठीक करें। अगली परत की सुरक्षा के लिए हमारी DDoS सुरक्षा मार्गदर्शिका देखें।

...

क्या root login बंद करना सुरक्षित है?

हाँ, अगर आपने पहले एक sudo उपयोगकर्ता बनाया हो और उसकी key का परीक्षण कर लिया हो। प्रशासनिक कमांड अब भी sudo से चलाए जा सकते हैं।

अगर मैं केवल keys इस्तेमाल करूं, तो क्या मुझे Fail2ban चाहिए?

यह वैकल्पिक है। Password लॉगिन बंद होने पर brute force सफल नहीं हो सकता, लेकिन Fail2ban log का शोर और लोड कम करता है।

अगर मेरी SSH key खो जाए तो?

अपने cloud panel के console से लॉगिन करें, ~/.ssh/authorized_keys में नई public key जोड़ें और पुरानी key हटा दें।

...

...