- 1 1. परिचय
- 2 2. बुनियादी SSH कॉन्फ़िगरेशन
- 3 3. SSH सुरक्षा को बढ़ाना
- 4 सारांश
- 5 4. उन्नत SSH कॉन्फ़िगरेशन
- 6 सारांश
- 7 5. SSH समस्याओं का निवारण
- 8 सारांश
- 9 6. अक्सर पूछे जाने वाले प्रश्न (FAQ)
- 9.1 6.1 SSH टाइमआउट को कैसे रोकें?
- 9.2 6.2 यदि मैं अपना SSH पासवर्ड भूल जाऊँ तो क्या करें?
- 9.3 6.3 Windows पर SSH कैसे उपयोग करें?
- 9.4 6.4 Ubuntu WSL (Windows Subsystem for Linux) में SSH कैसे सेटअप करें?
- 9.5 6.5 मुझे कौन से अतिरिक्त सुरक्षा उपाय करने चाहिए?
- 9.6 6.6 रीयल‑टाइम में SSH लॉग कैसे मॉनिटर करें?
- 9.7 6.7 SSH को अधिक सुविधाजनक कैसे बनाएं?
- 10 सारांश
- 11 संबंधित लेख
1. परिचय
उबंटू पर SSH सेट अप करना रिमोट सर्वरों को प्रबंधित करने के लिए आवश्यक है। SSH (Secure Shell) एक प्रोटोकॉल है जो सुरक्षित एन्क्रिप्टेड संचार प्रदान करता है, और रिमोट सर्वर एक्सेस, कमांड निष्पादन और फ़ाइल ट्रांसफ़र के लिए व्यापक रूप से उपयोग किया जाता है।
इस गाइड में हम बुनियादी इंस्टॉलेशन से लेकर उबंटू पर SSH के उन्नत सुरक्षा कॉन्फ़िगरेशन तक सब कुछ कवर करेंगे।
1.1 उबंटू पर SSH क्यों सेट अप करें?
1.1.1 SSH क्या है?
SSH (Secure Shell) एक प्रोटोकॉल है जो नेटवर्क पर सुरक्षित संचार के लिए डिज़ाइन किया गया है। यह आमतौर पर रिमोट सर्वरों में लॉगिन करने, फ़ाइलें ट्रांसफ़र करने और टनलिंग (पोर्ट फ़ॉरवर्डिंग) के लिए उपयोग किया जाता है। पारंपरिक प्रोटोकॉल जैसे Telnet या FTP के विपरीत, SSH सभी संचार को एन्क्रिप्ट करता है, जिससे यह अत्यधिक सुरक्षित बन जाता है।
1.1.2 उबंटू पर SSH की आवश्यकता कब होती है?
SSH विभिन्न परिदृश्यों में रिमोट प्रबंधन के लिए उपयोगी है, जैसे:
- क्लाउड सर्वरों का प्रबंधन : AWS, GCP और Vultr जैसी क्लाउड सेवाएँ रिमोट सर्वर एक्सेस के लिए SSH का उपयोग करती हैं।
- LAN वातावरण में रिमोट ऑपरेशन्स : रिमोट कार्य के लिए आंतरिक सर्वरों या डेवलपमेंट मशीनों तक SSH के माध्यम से पहुंचना।
- IoT डिवाइसों का प्रबंधन : Raspberry Pi जैसे एम्बेडेड डिवाइसों को रिमोटली नियंत्रित करना।
डिफ़ॉल्ट रूप से, उबंटू पर SSH निष्क्रिय रहता है। इसे उपयोग करने के लिए आपको इसे मैन्युअली इंस्टॉल और कॉन्फ़िगर करना होगा।
2. बुनियादी SSH कॉन्फ़िगरेशन
उबंटू पर SSH का उपयोग करने के लिए आपको SSH सर्वर (OpenSSH) इंस्टॉल करना होगा और उसे सही तरीके से कॉन्फ़िगर करना होगा। इस सेक्शन में इंस्टॉलेशन, बुनियादी सेटिंग्स, फ़ायरवॉल कॉन्फ़िगरेशन और सर्वर से कनेक्ट होने के तरीके को कवर किया गया है।
2.1 OpenSSH को इंस्टॉल और स्टार्ट करना
2.1.1 OpenSSH क्या है?
OpenSSH (Open Secure Shell) SSH प्रोटोकॉल का एक ओपन‑सोर्स इम्प्लीमेंटेशन है। यह रिमोट कनेक्शन, सुरक्षित फ़ाइल ट्रांसफ़र (SCP और SFTP) और पोर्ट फ़ॉरवर्डिंग को सपोर्ट करता है।
2.1.2 OpenSSH को इंस्टॉल करना
डिफ़ॉल्ट रूप से, उबंटू में SSH सर्वर प्री‑इंस्टॉल नहीं आता। इसे इंस्टॉल करने के लिए नीचे दिया गया कमांड उपयोग करें:
sudo apt update && sudo apt install -y openssh-server
यह कमांड पैकेज सूची को अपडेट करता है और OpenSSH सर्वर को इंस्टॉल करता है।
2.1.3 SSH सर्वर को स्टार्ट और एनेबल करना
इंस्टॉल होने के बाद, SSH सर्वर को स्टार्ट करें और बूट पर ऑटो‑स्टार्ट के लिए एनेबल करें।
sudo systemctl enable --now ssh
enable विकल्प सुनिश्चित करता है कि OS बूट होने पर SSH स्वचालित रूप से शुरू हो जाए।
2.1.4 SSH स्टेटस की जाँच करना
SSH सर्वर चल रहा है या नहीं, यह जांचने के लिए उपयोग करें:
systemctl status ssh
यदि आप नीचे जैसा आउटपुट देखते हैं, तो SSH सही ढंग से चल रहा है:
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2025-02-28 12:00:00 UTC; 5min ago
यदि आप inactive (dead) या failed देखते हैं, तो सेवा को मैन्युअली स्टार्ट करें:
sudo systemctl start ssh
2.2 फ़ायरवॉल (UFW) कॉन्फ़िगर करना
उबंटू ufw (Uncomplicated Firewall) प्रदान करता है जो फ़ायरवॉल प्रबंधन को आसान बनाता है। आपको SSH कनेक्शन की अनुमति देने के लिए UFW को कॉन्फ़िगर करना होगा।
2.2.1 UFW स्टेटस की जाँच
वर्तमान फ़ायरवॉल स्टेटस को जांचने के लिए उपयोग करें:
sudo ufw status
उदाहरण आउटपुट (यदि UFW निष्क्रिय है):
Status: inactive
उदाहरण आउटपुट (यदि UFW सक्रिय है):
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
2.2.2 SSH ट्रैफ़िक की अनुमति देना
डिफ़ॉल्ट पोर्ट 22 पर SSH कनेक्शन की अनुमति देने के लिए चलाएँ:
sudo ufw allow ssh
वैकल्पिक रूप से, पोर्ट को स्पष्ट रूप से निर्दिष्ट करें:
sudo ufw allow 22/tcp
2.2.3 UFW को एनेबल करना
यदि UFW निष्क्रिय है, तो इसे एनेबल करें:
sudo ufw enable
UFW को एनेबल करने से पहले सुनिश्चित करें कि SSH की अनुमति दी गई है, अन्यथा आप खुद को लॉक कर सकते हैं।
2.2.4 UFW सेटिंग्स की पुष्टि करना
जाँचें कि फ़ायरवॉल नियम सही ढंग से लागू हुए हैं या नहीं:
sudo ufw status verbose
उदाहरण आउटपुट:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
यदि आप यह देखते हैं, तो फ़ायरवॉल के माध्यम से SSH की अनुमति है।
2.3 SSH से कनेक्ट करना
एक बार SSH सर्वर चल रहा हो, आप क्लाइंट पीसी से कनेक्ट कर सकते हैं।
2.3.1 Linux/macOS से कनेक्ट करना
Linux या macOS पर, टर्मिनल खोलें और चलाएँ:
ssh username@server-ip-address
उदाहरण:
ssh user@192.168.1.100
पहले कनेक्शन पर, आपको इस तरह की सुरक्षा चेतावनी दिख सकती है:
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)?
yes टाइप करें और आगे बढ़ने के लिए Enter दबाएँ।
2.3.2 Windows से कनेक्ट करना
Windows पर, आप PowerShell या PuTTY का उपयोग करके SSH से कनेक्ट कर सकते हैं.
PowerShell का उपयोग करके
Windows 10 और बाद के संस्करणों में PowerShell में एक SSH क्लाइंट शामिल है। इस प्रकार कनेक्ट करें:
ssh username@server-ip-address
PuTTY का उपयोग करके
- आधिकारिक साइट से PuTTY डाउनलोड और इंस्टॉल करें।
- PuTTY खोलें और
Host Name (or IP address)में सर्वर का IP पता दर्ज करें। Connection typeकोSSHपर सेट करें औरOpenपर क्लिक करें।- कनेक्ट करने के लिए अपना यूज़रनेम और पासवर्ड दर्ज करें।
3. SSH सुरक्षा को बढ़ाना
SSH दूरस्थ पहुँच के लिए एक शक्तिशाली उपकरण है, लेकिन इसे डिफ़ॉल्ट सेटिंग्स पर छोड़ देना सुरक्षा जोखिम पैदा कर सकता है। हमलावर अक्सर ब्रूट फोर्स अटैक या पोर्ट स्कैनिंग का उपयोग करके SSH सर्वरों को लक्षित करते हैं। अधिक सुरक्षित SSH वातावरण बनाने के लिए उचित सुरक्षा कॉन्फ़िगरेशन लागू करना आवश्यक है।
3.1 रूट लॉगिन अक्षम करना
डिफ़ॉल्ट रूप से, Ubuntu SSH के माध्यम से रूट लॉगिन की अनुमति दे सकता है। चूँकि रूट खाते को पूरी सिस्टम विशेषाधिकार होते हैं, यह हमलावरों का सामान्य लक्ष्य है। रूट लॉगिन को अक्षम करके और सामान्य उपयोगकर्ता खाते का उपयोग करके सुरक्षा में काफी सुधार होता है।
3.1.1 कॉन्फ़िगरेशन चरण
- SSH कॉन्फ़िगरेशन फ़ाइल
/etc/ssh/sshd_configको संपादित करें।sudo nano /etc/ssh/sshd_config
- निम्न पंक्ति खोजें और इसे
PermitRootLogin noमें बदलें।PermitRootLogin no
- फ़ाइल को सहेजें और SSH सेवा को पुनः प्रारंभ करें।
sudo systemctl restart ssh
- सत्यापित करें कि सेटिंग लागू हुई है।
sudo grep PermitRootLogin /etc/ssh/sshd_config
यदि आउटपुट में PermitRootLogin no दिखता है, तो सेटिंग सफलतापूर्वक लागू हो गई है।
3.2 पासवर्ड प्रमाणीकरण अक्षम करना और सार्वजनिक कुंजी प्रमाणीकरण सक्षम करना
सार्वजनिक कुंजी प्रमाणीकरण पासवर्ड प्रमाणीकरण की तुलना में बहुत अधिक सुरक्षित है। सार्वजनिक कुंजी प्रमाणीकरण के साथ, आपको पासवर्ड दर्ज करने की आवश्यकता नहीं होती, जिससे ब्रूट फोर्स अटैक का जोखिम कम हो जाता है।
3.2.1 SSH कुंजी जोड़ी बनाना
अपने स्थानीय पीसी पर, एक SSH कुंजी जोड़ी बनाएं:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
यह दो फ़ाइलें बनाएगा:
- प्राइवेट कुंजी (
id_rsa) → इसे अपने स्थानीय पीसी पर रखें (कभी सार्वजनिक रूप से साझा न करें)। - पब्लिक कुंजी (
id_rsa.pub) → इसे सर्वर पर कॉपी करें।
3.2.2 सार्वजनिक कुंजी को सर्वर पर कॉपी करना
सर्वर पर अपनी सार्वजनिक कुंजी कॉपी करने के लिए निम्न कमांड का उपयोग करें:
ssh-copy-id username@server-ip-address
3.2.3 पासवर्ड प्रमाणीकरण अक्षम करना
SSH कॉन्फ़िगरेशन फ़ाइल को संपादित करें:
sudo nano /etc/ssh/sshd_config
निम्न पंक्ति खोजें और इसे बदलें:
PasswordAuthentication no
परिवर्तनों को लागू करने के लिए SSH को पुनः प्रारंभ करें:
sudo systemctl restart ssh
3.3 विशिष्ट उपयोगकर्ताओं के लिए SSH पहुँच प्रतिबंधित करना
सुरक्षा बढ़ाने के लिए, आप SSH पहुँच को विशिष्ट उपयोगकर्ताओं तक सीमित कर सकते हैं।
3.3.1 कॉन्फ़िगरेशन चरण
- SSH कॉन्फ़िगरेशन फ़ाइल खोलें।
sudo nano /etc/ssh/sshd_config
- अनुमत उपयोगकर्ताओं को निर्दिष्ट करते हुए निम्न पंक्ति जोड़ें।
AllowUsers user1 user2
- परिवर्तनों को लागू करने के लिए SSH को पुनः प्रारंभ करें।
sudo systemctl restart ssh
3.4 SSH पोर्ट बदलना
डिफ़ॉल्ट SSH पोर्ट (22) अक्सर हमलावरों द्वारा लक्षित किया जाता है। इसे एक गैर-मानक पोर्ट में बदलने से स्वचालित हमलों का जोखिम कम हो सकता है।
3.4.1 कॉन्फ़िगरेशन चरण
- SSH कॉन्फ़िगरेशन फ़ाइल खोलें।
sudo nano /etc/ssh/sshd_config
- निम्न पंक्ति खोजें और इसे एक कस्टम पोर्ट (जैसे,
2200) में बदलें।Port 2200
- फ़ाइल को सहेजें और SSH को पुनः शुरू करें।
sudo systemctl restart ssh
3.4.2 फ़ायरवॉल सेटिंग्स को अपडेट करना
SSH पोर्ट बदलने के बाद, UFW के माध्यम से नया पोर्ट अनुमति दें:
sudo ufw allow 2200/tcp
सेटिंग्स की जाँच करें:
sudo ufw status
3.5 Fail2Ban के साथ ब्रूट फोर्स हमलों को रोकना
Fail2Ban एक टूल है जो असफल SSH लॉगिन प्रयासों का पता लगाता है और हमलावर के IP पते को अस्थायी रूप से ब्लॉक कर देता है।
3.5.1 Fail2Ban स्थापित करना
sudo apt install fail2ban -y
3.5.2 कॉन्फ़िगरेशन फ़ाइल बनाना
डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल कॉपी करें:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
कॉन्फ़िगरेशन फ़ाइल संपादित करें:
sudo nano /etc/fail2ban/jail.local
SSH सेक्शन को इस प्रकार संशोधित करें:
[sshd]
enabled = true
port = 2200
maxretry = 3
findtime = 600
bantime = 3600
3.5.3 Fail2Ban को पुनः शुरू करना
परिवर्तनों को लागू करने के लिए Fail2Ban को पुनः शुरू करें:
sudo systemctl restart fail2ban
3.5.4 बैन सूची की जाँच करना
कौन से IP बैन किए गए हैं, यह जांचने के लिए:
sudo fail2ban-client status sshd
सारांश
इस अनुभाग में, हमने आवश्यक SSH सुरक्षा सुधारों को कवर किया, जिसमें शामिल हैं:
- रूट लॉगिन अक्षम करना
- पासवर्ड प्रमाणीकरण अक्षम करना और सार्वजनिक कुंजी प्रमाणीकरण सक्षम करना
- विशिष्ट उपयोगकर्ताओं के लिए SSH एक्सेस प्रतिबंधित करना
- SSH पोर्ट बदलना
- ब्रूट फोर्स हमलों को ब्लॉक करने के लिए Fail2Ban का उपयोग करना
इन उपायों को लागू करके, आप एक सुरक्षित SSH वातावरण बना सकते हैं।
4. उन्नत SSH कॉन्फ़िगरेशन
SSH सुरक्षा को कॉन्फ़िगर करने के बाद, आप उपयोगिता और सुरक्षा को सुधारने के लिए उन्नत सेटिंग्स का लाभ उठा सकते हैं। यह अनुभाग Ubuntu 22.10 और बाद में ssh.socket प्रबंधन, SSH टनलिंग (पोर्ट फ़ॉरवर्डिंग), कई SSH पोर्ट सेटअप, और विशिष्ट IP पतों के लिए SSH एक्सेस प्रतिबंधित करने को कवर करता है।
4.1 Ubuntu 22.10 और बाद में ssh.socket का उपयोग
Ubuntu 22.10 से शुरू करके, SSH सेवा प्रबंधन ssh.service से ssh.socket में बदल सकता है। यह SSH को कनेक्शन अनुरोध मिलने पर गतिशील रूप से शुरू करने की अनुमति देता है, जिससे संसाधन उपयोग कम होता है।
4.1.1 ssh.socket स्थिति की जाँच
ssh.socket सक्षम है या नहीं, यह जांचने के लिए चलाएँ:
sudo systemctl status ssh.socket
उदाहरण आउटपुट (यदि सक्षम है):
● ssh.socket - OpenSSH Server Socket
Loaded: loaded (/lib/systemd/system/ssh.socket; enabled; vendor preset: enabled)
Active: active (listening) since Fri 2025-02-28 12:00:00 UTC
4.1.2 ssh.socket को सक्षम या अक्षम करना
यदि ssh.socket अक्षम है, तो इसे इस कमांड से सक्षम करें:
sudo systemctl enable --now ssh.socket
परम्परागत ssh.service पर वापस जाने के लिए, ssh.socket को अक्षम करें और इसके बजाय ssh.service को सक्षम करें:
sudo systemctl disable --now ssh.socket
sudo systemctl enable --now ssh.service
4.2 SSH टनलिंग (पोर्ट फ़ॉरवर्डिंग)
SSH टनलिंग एक रिमोट सर्वर और स्थानीय पीसी के बीच सुरक्षित डेटा ट्रांसमिशन की अनुमति देता है, बाहरी नेटवर्क को बायपास करते हुए।
4.2.1 लोकल पोर्ट फ़ॉरवर्डिंग
रिमोट डेटाबेस या वेब सर्वर को सुरक्षित रूप से एक्सेस करने के लिए उपयोगी।
उदाहरण: अपने स्थानीय पीसी से रिमोट MySQL सर्वर (पोर्ट 3306) से कनेक्ट करना
ssh -L 3306:localhost:3306 username@server-ip-address
4.2.2 रिमोट पोर्ट फ़ॉरवर्डिंग
SSH के माध्यम से एक स्थानीय सेवा को रिमोट सर्वर पर उजागर करता है।
उदाहरण: स्थानीय वेब सर्वर (पोर्ट 80) को रिमोट सर्वर पर पोर्ट 8080 पर फ़ॉरवर्ड करना
ssh -R 8080:localhost:80 username@server-ip-address
4.2.3 डायनामिक पोर्ट फ़ॉरवर्डिंग
SSH को एक SOCKS प्रॉक्सी में बदलता है, जिससे गुमनाम वेब ब्राउज़िंग संभव होती है।
उदाहरण: स्थानीय पोर्ट 1080 पर एक SOCKS प्रॉक्सी बनाना
ssh -D 1080 username@server-ip-address
4.3 कई SSH पोर्ट्स पर सुनना
डिफ़ॉल्ट रूप से, SSH एक पोर्ट (पोर्ट 22) पर सुनता है। कई पोर्ट्स को कॉन्फ़िगर करने से एक्सेस में लचीलापन मिलता है।
4.3.1 कॉन्फ़िगरेशन चरण
- SSH कॉन्फ़िगरेशन फ़ाइल संपादित करें।
sudo nano /etc/ssh/sshd_config
- कई पोर्ट एंट्रीज़ जोड़ें।
Port 22 Port 2200
- SSH को पुनः शुरू करें।
sudo systemctl restart ssh
- फ़ायरवॉल में नया पोर्ट अनुमति दें।
sudo ufw allow 2200/tcp
4.4 विशिष्ट IP पतों के लिए SSH एक्सेस को प्रतिबंधित करना
सुरक्षा को बढ़ाने के लिए, आप SSH एक्सेस को विशिष्ट IP पतों तक सीमित कर सकते हैं।
4.4.1 /etc/hosts.allow को कॉन्फ़िगर करना
संपादन करके केवल कुछ IP पतों से SSH एक्सेस की अनुमति दें:
sudo nano /etc/hosts.allow
निम्नलिखित पंक्ति जोड़ें (192.168.1.100 को अनुमति वाले IP पते से बदलें):
sshd: 192.168.1.100
4.4.2 /etc/hosts.deny को कॉन्फ़िगर करना
डिफ़ॉल्ट रूप से सभी अन्य IP को ब्लॉक करने के लिए:
sudo nano /etc/hosts.deny
sshd: ALL
यह सुनिश्चित करता है कि केवल hosts.allow में सूचीबद्ध IP ही SSH तक पहुंच सकें।
सारांश
इस अनुभाग में उन्नत SSH सेटिंग्स को कवर किया गया है, जिसमें शामिल हैं:
- Ubuntu 22.10 और बाद के संस्करणों में
ssh.socketका प्रबंधन - सुरक्षित कनेक्शन के लिए SSH टनलिंग (पोर्ट फ़ॉरवर्डिंग) का उपयोग
- कई SSH पोर्ट्स पर सुनना
- विशिष्ट IPs के लिए SSH एक्सेस को प्रतिबंधित करना
इन सेटिंग्स को लागू करने से SSH सुरक्षा और उपयोगिता में सुधार होता है।
5. SSH समस्याओं का निवारण
उचित कॉन्फ़िगरेशन के बावजूद, SSH समस्याएँ उत्पन्न हो सकती हैं। यह अनुभाग सामान्य SSH समस्याओं के समाधान प्रदान करता है।
5.1 SSH से कनेक्ट नहीं हो पा रहा है
यदि आपको Connection refused या टाइमआउट त्रुटि मिलती है, तो निम्नलिखित जांचें।
5.1.1 SSH सेवा चल नहीं रही है
SSH सेवा की स्थिति सत्यापित करें:
sudo systemctl status ssh
समाधान:
- यदि
Active: inactive (dead)याfailedहै, तो SSH को पुनः प्रारंभ करें।sudo systemctl restart ssh
- SSH को स्वचालित रूप से शुरू होने के लिए सक्षम करें।
sudo systemctl enable ssh
5.1.2 फ़ायरवॉल SSH को ब्लॉक कर रहा है
सुनिश्चित करें कि UFW के माध्यम से SSH की अनुमति है:
sudo ufw status
समाधान: यदि SSH की अनुमति नहीं है:
sudo ufw allow 22/tcp
यदि कस्टम पोर्ट का उपयोग कर रहे हैं:
sudo ufw allow 2200/tcp
5.2 प्रमाणीकरण त्रुटियाँ
यदि SSH लॉगिन प्रयासों को अस्वीकार करता है, तो निम्नलिखित जांचें:
5.2.1 गलत उपयोगकर्ता नाम या पासवर्ड
सुनिश्चित करें कि आप सही उपयोगकर्ता नाम का उपयोग कर रहे हैं:
ssh username@server-ip-address
5.2.2 सार्वजनिक कुंजी प्रमाणीकरण समस्याएँ
~/.ssh/authorized_keys में आपकी सार्वजनिक कुंजी सही ढंग से संग्रहीत है, यह सत्यापित करें।
cat ~/.ssh/authorized_keys
5.2.3 गलत अनुमतियाँ
सुनिश्चित करें कि SSH डायरेक्टरी और फ़ाइलों की अनुमतियाँ सही हैं:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
सारांश
इस अनुभाग में सामान्य SSH समस्याओं और उनके समाधान को कवर किया गया है, जिसमें शामिल हैं:
- जाँचें कि SSH चल रहा है या नहीं
- सुनिश्चित करें कि फ़ायरवॉल SSH को ब्लॉक नहीं कर रहा है
- प्रमाणीकरण समस्याओं को ठीक करना
इन निवारण चरणों का उपयोग करके SSH कनेक्शन समस्याओं को शीघ्रता से हल करें।
6. अक्सर पूछे जाने वाले प्रश्न (FAQ)
यह अनुभाग सामान्य SSH-संबंधी प्रश्नों और समाधान को संबोधित करता है ताकि सुरक्षा बनाए रखते हुए आपका SSH अनुभव बेहतर हो सके।
6.1 SSH टाइमआउट को कैसे रोकें?
यदि SSH कनेक्शन निष्क्रियता के बाद डिस्कनेक्ट हो जाता है, तो निम्नलिखित सेटिंग्स आज़माएँ।
6.1.1 सर्वर-साइड कॉन्फ़िगरेशन
/etc/ssh/sshd_config को संपादित करें और जोड़ें:
ClientAliveInterval 60
ClientAliveCountMax 3
परिवर्तनों को लागू करने के लिए SSH को पुनः प्रारंभ करें:
sudo systemctl restart ssh
6.1.2 क्लाइंट-साइड कॉन्फ़िगरेशन
स्थानीय SSH कॉन्फ़िगरेशन फ़ाइल ~/.ssh/config को संशोधित करें:
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
6.2 यदि मैं अपना SSH पासवर्ड भूल जाऊँ तो क्या करें?
6.2.1 यदि आपके पास सर्वर तक भौतिक पहुँच है
- GRUB मेनू के माध्यम से रिकवरी मोड में बूट करें।
- निम्नलिखित कमांड से पासवर्ड रीसेट करें:
passwd username
- सिस्टम को पुनः प्रारंभ करें।
6.2.2 यदि आप सर्वर तक भौतिक रूप से पहुँच नहीं सकते (जैसे, क्लाउड VPS)
- क्लाउड प्रदाता की कंसोल सुविधा का उपयोग करके सर्वर तक पहुँचें।
- पासवर्ड पर निर्भर रहने के बजाय SSH कुंजी प्रमाणीकरण सेट करें।
6.3 Windows पर SSH कैसे उपयोग करें?
6.3.1 PowerShell का उपयोग
Windows 10 और बाद के संस्करणों में एक अंतर्निहित SSH क्लाइंट शामिल है। PowerShell खोलें और चलाएँ:
ssh username@server-ip-address
6.3.2 PuTTY का उपयोग
- PuTTY डाउनलोड करें और इंस्टॉल करें।
- सर्वर का IP
Host Name (or IP address)में दर्ज करें। - कनेक्शन प्रकार के रूप में
SSHचुनें औरOpenपर क्लिक करें। - अपने उपयोगकर्ता नाम और पासवर्ड से लॉग इन करें।
6.4 Ubuntu WSL (Windows Subsystem for Linux) में SSH कैसे सेटअप करें?
WSL पर SSH सक्षम करने के लिए, इन चरणों का पालन करें।
6.4.1 SSH सर्वर स्थापित करना
sudo apt update && sudo apt install openssh-server
6.4.2 SSH कॉन्फ़िगर करना
/etc/ssh/sshd_config को संपादित करें और पासवर्ड प्रमाणीकरण सक्षम करें:
PasswordAuthentication yes
चूंकि WSL डिफ़ॉल्ट रूप से systemd का उपयोग नहीं करता, इसलिए SSH को मैन्युअल रूप से शुरू करें:
sudo service ssh start
6.5 मुझे कौन से अतिरिक्त सुरक्षा उपाय करने चाहिए?
6.5.1 Fail2Ban स्थापित करना
Fail2Ban स्थापित करके ब्रूट‑फ़ोर्स हमलों को रोकें:
sudo apt install fail2ban -y
कॉन्फ़िगरेशन फ़ाइल /etc/fail2ban/jail.local को संपादित करें:
[sshd]
enabled = true
port = 22
maxretry = 3
findtime = 600
bantime = 3600
Fail2Ban को पुनः शुरू करें:
sudo systemctl restart fail2ban
6.5.2 SSH पोर्ट बदलना
डिफ़ॉल्ट SSH पोर्ट बदलने के लिए /etc/ssh/sshd_config को संशोधित करें:
Port 2200
SSH को पुनः शुरू करें और फ़ायरवॉल सेटिंग्स को अपडेट करें:
sudo ufw allow 2200/tcp
6.6 रीयल‑टाइम में SSH लॉग कैसे मॉनिटर करें?
रीयल‑टाइम में SSH लॉग देखने के लिए, उपयोग करें:
sudo journalctl -u ssh -f
पिछले लॉग जांचने के लिए:
sudo cat /var/log/auth.log | grep ssh
6.7 SSH को अधिक सुविधाजनक कैसे बनाएं?
6.7.1 आसान लॉगिन के लिए .ssh/config का उपयोग
बार‑बार उपयोग किए जाने वाले SSH कनेक्शन को ~/.ssh/config में सहेजें:
Host myserver
HostName 192.168.1.100
User user
Port 2200
IdentityFile ~/.ssh/id_rsa
अब आप इस कमांड से कनेक्ट कर सकते हैं:
ssh myserver
6.7.2 बार‑बार पासवर्ड दर्ज करने से बचने के लिए ssh-agent का उपयोग
चलाएँ:
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
यह हर बार पासफ़्रेज़ दर्ज किए बिना SSH कनेक्शन की अनुमति देता है।
सारांश
यह अनुभाग सामान्य SSH‑संबंधित प्रश्नों के उत्तर प्रदान करता है, जिसमें शामिल हैं:
- SSH टाइमआउट को रोकना
- भूल गए पासवर्ड से पुनर्प्राप्ति
- Windows और WSL पर SSH का उपयोग
- अतिरिक्त सुरक्षा उपाय लागू करना
- SSH लॉग की निगरानी
- SSH उपयोग को अधिक सुविधाजनक बनाना
इन टिप्स का पालन करके, आप रिमोट सर्वर प्रबंधन के लिए एक सुरक्षित और कुशल SSH वातावरण बना सकते हैं।
संबंधित लेख
1. परिचय Ubuntu पर SSH का उपयोग करके आप अपने सर्वर या पीसी को सुरक्षित रूप से रिमोटली एक्सेस और मैनेज कर सकते हैं। यह गा[…]


![उबंटू पर पायथन संस्करणों को कैसे जांचें, बदलें और स्विच करें [पूर्ण गाइड]](https://www.linux.digibeatrix.com/wp-content/uploads/2025/02/36b84d2ec91b0993972a29a44e5757c7-375x214.webp)
![Ubuntu पर CUDA संस्करण की जाँच कैसे करें [आसान कमांड गाइड]](https://www.linux.digibeatrix.com/wp-content/uploads/2025/03/7ad0e7fe124605dc3cd746565dc1d108-375x214.webp)