उबंटू SSH कॉन्फ़िगरेशन के लिए संपूर्ण गाइड | इंस्टॉलेशन, सुरक्षा वृद्धि, और समस्या निवारण

目次

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 का उपयोग करके

  1. आधिकारिक साइट से PuTTY डाउनलोड और इंस्टॉल करें।
  2. PuTTY खोलें और Host Name (or IP address) में सर्वर का IP पता दर्ज करें।
  3. Connection type को SSH पर सेट करें और Open पर क्लिक करें।
  4. कनेक्ट करने के लिए अपना यूज़रनेम और पासवर्ड दर्ज करें।

3. SSH सुरक्षा को बढ़ाना

SSH दूरस्थ पहुँच के लिए एक शक्तिशाली उपकरण है, लेकिन इसे डिफ़ॉल्ट सेटिंग्स पर छोड़ देना सुरक्षा जोखिम पैदा कर सकता है। हमलावर अक्सर ब्रूट फोर्स अटैक या पोर्ट स्कैनिंग का उपयोग करके SSH सर्वरों को लक्षित करते हैं। अधिक सुरक्षित SSH वातावरण बनाने के लिए उचित सुरक्षा कॉन्फ़िगरेशन लागू करना आवश्यक है।

3.1 रूट लॉगिन अक्षम करना

डिफ़ॉल्ट रूप से, Ubuntu SSH के माध्यम से रूट लॉगिन की अनुमति दे सकता है। चूँकि रूट खाते को पूरी सिस्टम विशेषाधिकार होते हैं, यह हमलावरों का सामान्य लक्ष्य है। रूट लॉगिन को अक्षम करके और सामान्य उपयोगकर्ता खाते का उपयोग करके सुरक्षा में काफी सुधार होता है।

3.1.1 कॉन्फ़िगरेशन चरण

  1. SSH कॉन्फ़िगरेशन फ़ाइल /etc/ssh/sshd_config को संपादित करें।
    sudo nano /etc/ssh/sshd_config
    
  1. निम्न पंक्ति खोजें और इसे PermitRootLogin no में बदलें।
    PermitRootLogin no
    
  1. फ़ाइल को सहेजें और SSH सेवा को पुनः प्रारंभ करें।
    sudo systemctl restart ssh
    
  1. सत्यापित करें कि सेटिंग लागू हुई है।
    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 कॉन्फ़िगरेशन चरण

  1. SSH कॉन्फ़िगरेशन फ़ाइल खोलें।
    sudo nano /etc/ssh/sshd_config
    
  1. अनुमत उपयोगकर्ताओं को निर्दिष्ट करते हुए निम्न पंक्ति जोड़ें।
    AllowUsers user1 user2
    
  1. परिवर्तनों को लागू करने के लिए SSH को पुनः प्रारंभ करें।
    sudo systemctl restart ssh
    

3.4 SSH पोर्ट बदलना

डिफ़ॉल्ट SSH पोर्ट (22) अक्सर हमलावरों द्वारा लक्षित किया जाता है। इसे एक गैर-मानक पोर्ट में बदलने से स्वचालित हमलों का जोखिम कम हो सकता है।

3.4.1 कॉन्फ़िगरेशन चरण

  1. SSH कॉन्फ़िगरेशन फ़ाइल खोलें।
    sudo nano /etc/ssh/sshd_config
    
  1. निम्न पंक्ति खोजें और इसे एक कस्टम पोर्ट (जैसे, 2200 ) में बदलें।
    Port 2200
    
  1. फ़ाइल को सहेजें और 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 कॉन्फ़िगरेशन चरण

  1. SSH कॉन्फ़िगरेशन फ़ाइल संपादित करें।
    sudo nano /etc/ssh/sshd_config
    
  1. कई पोर्ट एंट्रीज़ जोड़ें।
    Port 22
    Port 2200
    
  1. SSH को पुनः शुरू करें।
    sudo systemctl restart ssh
    
  1. फ़ायरवॉल में नया पोर्ट अनुमति दें।
    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 यदि आपके पास सर्वर तक भौतिक पहुँच है

  1. GRUB मेनू के माध्यम से रिकवरी मोड में बूट करें।
  2. निम्नलिखित कमांड से पासवर्ड रीसेट करें:
    passwd username
    
  1. सिस्टम को पुनः प्रारंभ करें।

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 का उपयोग

  1. PuTTY डाउनलोड करें और इंस्टॉल करें।
  2. सर्वर का IP Host Name (or IP address) में दर्ज करें।
  3. कनेक्शन प्रकार के रूप में SSH चुनें और Open पर क्लिक करें।
  4. अपने उपयोगकर्ता नाम और पासवर्ड से लॉग इन करें।

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 वातावरण बना सकते हैं।

संबंधित लेख

Related

1. परिचय Ubuntu पर SSH का उपयोग करके आप अपने सर्वर या पीसी को सुरक्षित रूप से रिमोटली एक्सेस और मैनेज कर सकते हैं। यह गा[…]