उबंटू के लिए अंतिम SSH सेटअप गाइड: सुरक्षित रिमोट एक्सेस, कॉन्फ़िगरेशन और ट्रबलशूटिंग

目次

1. परिचय

Ubuntu पर SSH का उपयोग करके, आप सुरक्षित रूप से दूरस्थ सर्वरों या पीसी तक पहुँच और संचालन कर सकते हैं। यह लेख SSH की विस्तृत व्याख्या प्रदान करता है—इसके मूल अवधारणाओं से लेकर Ubuntu पर SSH सर्वर कैसे स्थापित करें, सुरक्षा सर्वोत्तम प्रथाओं और समस्या निवारण तक—शुरुआती लोगों के लिए भी उपयुक्त स्पष्ट व्याख्याओं का उपयोग करके।

SSH क्या है?

SSH (सुरक्षित शेल) एक प्रोटोकॉल है जो नेटवर्क के माध्यम से कंप्यूटरों से सुरक्षित दूरस्थ कनेक्शन की अनुमति देता है। पारंपरिक प्रोटोकॉल जैसे Telnet या FTP के विपरीत, SSH संचार डेटा को एन्क्रिप्ट करता है, जिससे जासूसी और छेड़छाड़ का जोखिम काफी कम हो जाता है।

Ubuntu पर SSH के मुख्य उपयोग केस

Ubuntu पर SSH के उपयोग के मुख्य परिदृश्य निम्नलिखित हैं:

  • दूरस्थ सर्वर प्रबंधन : दूरस्थ स्थानों से Ubuntu सर्वरों का संचालन
  • फ़ाइल स्थानांतरण : SCP या SFTP का उपयोग करके सुरक्षित रूप से फ़ाइलों का आदान-प्रदान
  • पोर्ट फॉरवर्डिंग : SSH के माध्यम से अन्य सेवाओं से सुरक्षित कनेक्शन स्थापित करना

इस लेख में आप क्या सीखेंगे

  • SSH के मूल अवधारणाएँ और तंत्र
  • Ubuntu पर SSH सर्वर कैसे स्थापित करें
  • SSH कनेक्शनों को कॉन्फ़िगर कैसे करें और त्रुटियों का निवारण कैसे करें
  • SSH के लिए सुरक्षा सर्वोत्तम प्रथाएँ

2. SSH के मूल अवधारणाएँ

SSH का प्रभावी उपयोग करने के लिए, इसके मूल अवधारणाओं को समझना महत्वपूर्ण है। इस अध्याय में, हम SSH कैसे काम करता है और प्रमाणीकरण विधियों के बीच अंतर की व्याख्या करते हैं।

SSH कैसे काम करता है

SSH एक प्रोटोकॉल है जो क्लाइंट और सर्वर के बीच सुरक्षित कनेक्शन स्थापित करता है। डिफ़ॉल्ट रूप से, यह एन्क्रिप्टेड संचार के लिए TCP पोर्ट 22 का उपयोग करता है।

मुख्य विशेषताएँ

  • दूरस्थ लॉगिन : सर्वर पर कमांड निष्पादित करें
  • फ़ाइल स्थानांतरण : SCP या SFTP के माध्यम से डेटा सुरक्षित रूप से भेजें
  • पोर्ट फॉरवर्डिंग : SSH के माध्यम से अन्य सेवाओं से कनेक्ट करें

SSH प्रमाणीकरण विधियाँ

SSH मुख्य रूप से दो प्रमाणीकरण विधियाँ प्रदान करता है:

पासवर्ड प्रमाणीकरण

  • उपयोगकर्ता नाम और पासवर्ड का उपयोग करके लॉग इन करें
  • सरल, लेकिन ब्रूट-फोर्स हमलों के प्रति संवेदनशील

पब्लिक कुंजी प्रमाणीकरण

  • पब्लिक और प्राइवेट कुंजी जोड़ी का उपयोग करके प्रमाणीकरण
  • अधिक सुरक्षित और डिफ़ॉल्ट रूप से अनुशंसित

SSH के लाभ

  • एन्क्रिप्टेड संचार : संचरित डेटा की रक्षा करता है
  • आसान दूरस्थ प्रबंधन : कहीं से भी पहुँच
  • उन्नत सुरक्षा : अनधिकृत पहुँच को रोकने में मदद करता है

3. Ubuntu पर SSH सर्वर स्थापित करना

Ubuntu पर SSH का उपयोग करने के लिए, आपको OpenSSH सर्वर पैकेज स्थापित करना होगा। यह अध्याय बताता है कि इसे कैसे स्थापित और कॉन्फ़िगर करें।

OpenSSH सर्वर स्थापित करना

आप Ubuntu पर OpenSSH सर्वर को निम्नलिखित कमांडों का उपयोग करके स्थापित कर सकते हैं:

sudo apt update
sudo apt install openssh-server

स्थापना के बाद, SSH सेवा के चल रहे होने की जाँच करें:

sudo systemctl status ssh

SSH सेवा को शुरू करना और प्रबंधित करना

SSH सेवा को मैन्युअल रूप से शुरू या रोकने के लिए, निम्नलिखित कमांडों का उपयोग करें:

# Start SSH
sudo systemctl start ssh

# Enable SSH to start automatically after reboot
sudo systemctl enable ssh

# Stop SSH
sudo systemctl stop ssh

UFW (अनकॉम्प्लिकेटेड फ़ायरवॉल) कॉन्फ़िगर करना

यदि UFW सक्षम है, तो SSH कनेक्शन अवरुद्ध हो सकते हैं। नीचे दिए गए कमांडों से SSH पोर्ट (22) को अनुमति दें:

sudo ufw allow ssh
sudo ufw enable

4. SSH कनेक्शनों को कॉन्फ़िगर करना

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

कुंजी जोड़ी उत्पन्न करना

क्लाइंट मशीन पर निम्नलिखित कमांड चलाकर पब्लिक/प्राइवेट कुंजी जोड़ी उत्पन्न करें:

ssh-keygen -t rsa -b 4096

डिफ़ॉल्ट रूप से, प्राइवेट कुंजी ~/.ssh/id_rsa में संग्रहीत होती है, और पब्लिक कुंजी ~/.ssh/id_rsa.pub में संग्रहीत होती है।

पब्लिक कुंजी को सर्वर पर अपलोड करना

उत्पन्न पब्लिक कुंजी को SSH सर्वर पर स्थानांतरित करें:

ssh-copy-id username@server-ip-address

या मैन्युअल रूप से स्थानांतरित करें:

scp ~/.ssh/id_rsa.pub username@server-ip-address:~/

सर्वर पर, निम्नलिखित कमांडों को निष्पादित करके पब्लिक कुंजी को सही निर्देशिका में रखें:

mkdir -p ~/.ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm ~/id_rsa.pub

sshd_config संपादित करना

सुरक्षा सेटिंग्स को बेहतर बनाने के लिए SSH कॉन्फ़िगरेशन फ़ाइल खोलें:

sudo nano /etc/ssh/sshd_config

निम्नलिखित कॉन्फ़िगरेशन आइटम्स की जाँच करें और संपादित करें:

# Disable password authentication (use public key only)
PasswordAuthentication no

# Disable root login
PermitRootLogin no

# Change the SSH port (example: 2222)
Port 2222

परिवर्तनों के बाद, SSH सेवा को पुनः प्रारंभ करें:

sudo systemctl restart ssh

5. SSH कनेक्शन निष्पादित करना

एक बार Ubuntu पर SSH सर्वर कॉन्फ़िगर हो जाने के बाद, आप क्लाइंट मशीन से कनेक्ट कर सकते हैं। यह अध्याय बुनियादी SSH उपयोग और पोर्ट बदलने पर कनेक्शन विधियों को समझाता है।

बुनियादी SSH कनेक्शन कमांड

SSH क्लाइंट से सर्वर से कनेक्ट करने के लिए निम्न कमांड का उपयोग करें:

ssh username@server-ip-address

उदाहरण के लिए, यदि सर्वर IP 192.168.1.10 है और उपयोगकर्ता नाम ubuntu है, तो टाइप करें:

ssh ubuntu@192.168.1.10

पहले कनेक्शन पर, सर्वर का फ़िंगरप्रिंट दिखाया जाएगा। स्वीकार करने और आगे बढ़ने के लिए yes दर्ज करें।

पोर्ट नंबर बदलने के बाद कनेक्ट करना

यदि आपने SSH पोर्ट बदल दिया है—उदाहरण के लिए, 2222—तो -p विकल्प का उपयोग करें:

ssh -p 2222 ubuntu@192.168.1.10

प्राइवेट की के साथ कनेक्ट करना

यदि सार्वजनिक कुंजी प्रमाणीकरण कॉन्फ़िगर किया गया है, तो -i विकल्प का उपयोग करके प्राइवेट की निर्दिष्ट करें:

ssh -i ~/.ssh/id_rsa ubuntu@192.168.1.10

SSH के माध्यम से रिमोट कमांड चलाना

आप इंटरैक्टिव लॉगिन किए बिना सीधे रिमोट सर्वर पर कमांड चला सकते हैं:

ssh ubuntu@192.168.1.10 "ls -lah /home/ubuntu"

यह तरीका स्क्रिप्ट्स का उपयोग करके कुशल ऑटोमेशन और रिमोट ऑपरेशन्स को सक्षम करता है।

SCP के साथ फ़ाइलें ट्रांसफ़र करना

आप SSH का उपयोग करके स्थानीय पीसी और रिमोट सर्वर के बीच फ़ाइलें ट्रांसफ़र कर सकते हैं।

स्थानीय → रिमोट

scp filename username@server-ip-address:/remote/directory

उदाहरण:

scp myfile.txt ubuntu@192.168.1.10:/home/ubuntu/

रिमोट → स्थानीय

scp username@server-ip-address:/remote/filename /local/directory

उदाहरण:

scp ubuntu@192.168.1.10:/home/ubuntu/myfile.txt ./

SFTP के साथ फ़ाइलें प्रबंधित करना

आप SFTP का उपयोग करके भी फ़ाइलें प्रबंधित कर सकते हैं:

sftp ubuntu@192.168.1.10

कनेक्ट होने के बाद, आप निम्न कमांड चला सकते हैं:

ls        # List files
cd        # Change directory
put filename   # Upload a local file to the remote server
get filename   # Download a remote file to the local machine
exit      # Exit the connection

6. SSH कनेक्शन की समस्या निवारण

SSH के माध्यम से कनेक्ट करते समय समस्याओं का सामना करना असामान्य नहीं है। यह अध्याय सामान्य समस्याओं और उनके समाधान को वर्णित करता है।

SSH कनेक्शन त्रुटियों के सामान्य कारण और समाधान

जब SSH कनेक्शन विफल होता है, तो कारण आमतौर पर निम्न में से एक होता है:

1. SSH सर्वर चल नहीं रहा है

पहले, पुष्टि करें कि SSH सर्वर सही ढंग से चल रहा है:

sudo systemctl status ssh

समाधान:

  • यदि SSH सर्वर बंद है, तो निम्न कमांड का उपयोग करके इसे शुरू करें:
    sudo systemctl start ssh
    
  • रीबूट के बाद SSH को स्वचालित रूप से शुरू करने के लिए, चलाएँ:
    sudo systemctl enable ssh
    

2. फ़ायरवॉल (UFW) SSH को ब्लॉक कर रहा है

यदि UFW (Uncomplicated Firewall) सक्षम है, तो SSH एक्सेस ब्लॉक हो सकता है:

समाधान:

  • वर्तमान UFW कॉन्फ़िगरेशन जाँचें:
    sudo ufw status
    
  • SSH एक्सेस की अनुमति दें:
    sudo ufw allow ssh
    

(यदि कस्टम पोर्ट का उपयोग कर रहे हैं, तो sudo ufw allow <port-number> चलाएँ)

  • UFW को पुनः प्रारंभ करें:
    sudo ufw reload
    

3. पोर्ट नंबर बदल दिया गया है

यदि SSH सर्वर डिफ़ॉल्ट पोर्ट 22 का उपयोग नहीं कर रहा है, तो कनेक्ट करते समय सही पोर्ट निर्दिष्ट करना आवश्यक है:

समाधान:

  • सर्वर पर पोर्ट नंबर जाँचें:
    sudo grep Port /etc/ssh/sshd_config
    
  • क्लाइंट पर सही पोर्ट निर्दिष्ट करें:
    ssh -p 2222 username@server-ip-address
    

4. गलत SSH कुंजी अनुमतियाँ

यदि आप सार्वजनिक कुंजी प्रमाणीकरण का उपयोग कर रहे हैं, तो गलत कुंजी अनुमतियों के कारण कनेक्शन नहीं हो सकता।

समाधान:

  • निजी कुंजी के लिए अनुमतियाँ सेट करें:
    chmod 600 ~/.ssh/id_rsa
    
  • सार्वजनिक कुंजी के लिए अनुमतियाँ सेट करें:
    chmod 644 ~/.ssh/authorized_keys
    

5. होस्ट कुंजी असंगति

यदि सर्वर पर SSH होस्ट कुंजी बदल गई है, तो क्लाइंट पर इस प्रकार की त्रुटि दिख सकती है: “WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!”

समाधान:

  • पुरानी होस्ट कुंजी हटाएँ:
    ssh-keygen -R <server-ip-address>
    
  • फिर से कनेक्ट करने का प्रयास करें:
    ssh username@server-ip-address
    

6. SSH लॉग की जाँच

विस्तृत SSH त्रुटि संदेशों की पहचान करने के लिए सर्वर लॉग फ़ाइलें देखें:

sudo journalctl -u ssh --no-pager | tail -n 20

रियल‑टाइम में लॉग मॉनिटर करने के लिए चलाएँ:

sudo tail -f /var/log/auth.log

7. SSH कनेक्शन टाइम‑आउट समस्याएँ

यदि SSH कनेक्शन धीमा है या अचानक डिस्कनेक्ट हो जाता है, तो निम्न बिंदुओं की समीक्षा करें:

समाधान:

  • KeepAlive सक्षम करें क्लाइंट के ~/.ssh/config में निम्न जोड़ें:
    Host *
        ServerAliveInterval 60
    
  • सर्वर पर टाइम‑आउट सेटिंग्स समायोजित करें /etc/ssh/sshd_config में निम्न जोड़ें और सेवा पुनः आरंभ करें:
    ClientAliveInterval 60
    ClientAliveCountMax 3
    
    sudo systemctl restart ssh
    

सारांश

SSH कनेक्शन समस्याएँ आमतौर पर नीचे दिए गए बिंदुओं से उत्पन्न होती हैं। अधिकांश मामलों में, इन आइटमों की जाँच करने से समस्या हल हो जाती है:

सुनिश्चित करें कि SSH सेवा चल रही है
जाँचें कि फ़ायरवॉल कनेक्शन को ब्लॉक तो नहीं कर रहा
सही SSH पोर्ट उपयोग में है यह पुष्टि करें
SSH कुंजी अनुमतियों को सही ढंग से सेट किया गया है यह सुनिश्चित करें
विस्तृत त्रुटियों के लिए SSH लॉग की समीक्षा करें

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

SSH एक शक्तिशाली रिमोट एक्सेस टूल है, लेकिन उचित सुरक्षा उपायों के बिना यह अनधिकृत पहुँच या ब्रूट‑फ़ोर्स हमलों का लक्ष्य बन सकता है। यह अध्याय SSH सुरक्षा को सुदृढ़ करने के लिए अनुशंसित सेटिंग्स को समझाता है।

1. पासवर्ड प्रमाणीकरण को निष्क्रिय करें और सार्वजनिक कुंजी प्रमाणीकरण का उपयोग करें

डिफ़ॉल्ट रूप से, SSH पासवर्ड लॉगिन की अनुमति देता है, जिससे ब्रूट‑फ़ोर्स हमलों का जोखिम बढ़ जाता है। सुरक्षा सुधारने के लिए सार्वजनिक कुंजी प्रमाणीकरण सक्षम करें और पासवर्ड प्रमाणीकरण को बंद करें।

चरण

  1. sshd_config संपादित करें
    sudo nano /etc/ssh/sshd_config
    
  1. निम्न सेटिंग्स जोड़ें या संशोधित करें
    PasswordAuthentication no
    PubkeyAuthentication yes
    
  1. SSH सेवा को पुनः आरंभ करें
    sudo systemctl restart ssh
    

इस कॉन्फ़िगरेशन को लागू करने के बाद, SSH केवल सार्वजनिक कुंजी प्रमाणीकरण को स्वीकार करेगा। सुनिश्चित करें कि आपके SSH कुंजियाँ पहले से सही ढंग से कॉन्फ़िगर की गई हैं।

2. SSH पोर्ट नंबर बदलें

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

चरण

  1. sshd_config खोलें
    sudo nano /etc/ssh/sshd_config
    
  1. निम्न पंक्ति को संशोधित करें (उदाहरण: पोर्ट को 2222 में बदलें)
    Port 2222
    
  1. फ़ायरवॉल के माध्यम से नया पोर्ट अनुमति दें
    sudo ufw allow 2222/tcp
    
  1. SSH सेवा को पुनः आरंभ करें
    sudo systemctl restart ssh
    
  1. नए पोर्ट का उपयोग करके कनेक्शन का परीक्षण करें
    ssh -p 2222 username@server-ip-address
    

3. रूट लॉगिन निष्क्रिय करें

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

चरण

  1. sshd_config खोलें
    sudo nano /etc/ssh/sshd_config
    
  1. निम्न पंक्ति को संपादित करें
    PermitRootLogin no
    
  1. SSH सेवा को पुनः आरंभ करें
    sudo systemctl restart ssh
    

4. Fail2Ban के साथ ब्रूट‑फ़ोर्स हमलों को रोकें

Fail2Ban अनधिकृत लॉगिन प्रयासों का पता लगाता है और निर्धारित संख्या से अधिक विफलताओं पर स्वचालित रूप से IP पते को ब्लॉक कर देता है।

स्थापना और कॉन्फ़िगरेशन

  1. Fail2Ban स्थापित करें

%%CODEBLOCK20%% (placeholder for installation command, if any)

sudo apt install fail2ban -y
  1. डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल की प्रतिलिपि बनाएँ
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    
  1. jail.local को संपादित करें
    sudo nano /etc/fail2ban/jail.local
    
  1. [sshd] अनुभाग को संशोधित करें
    [sshd]
    enabled = true
    maxretry = 5
    bantime = 600
    findtime = 600
    
  • maxretry : अनुमत असफल लॉगिन प्रयासों की संख्या
  • bantime : आईपी ब्लॉक की अवधि (सेकंड)
  • findtime : असफल प्रयासों की गिनती के लिए समय विंडो (सेकंड)
  1. Fail2Ban को पुनः आरंभ करें
    sudo systemctl restart fail2ban
    
  1. वर्तमान Fail2Ban स्थिति की जाँच करें
    sudo fail2ban-client status sshd
    

सारांश

SSH सुरक्षा को बढ़ाने के लिए, निम्नलिखित उपाय लागू करें:

पासवर्ड प्रमाणीकरण को अक्षम करें और पब्लिक कुंजी प्रमाणीकरण का उपयोग करें
हमले के जोखिम को कम करने के लिए SSH पोर्ट बदलें
जोखिमों को कम करने के लिए रूट लॉगिन को अक्षम करें
ब्रूट-फ़ोर्स हमलों को रोकने के लिए Fail2Ban का उपयोग करें

8. अक्सर पूछे जाने वाले प्रश्न (FAQ)

यह अनुभाग SSH को कॉन्फ़िगर करने और उपयोग करने पर उत्पन्न होने वाले सामान्य प्रश्नों और मुद्दों को संबोधित करता है।

Q1: SSH क्यों “Connection refused” दिखाता है?

SSH कनेक्शन के अस्वीकार होने के कई संभावित कारण हो सकते हैं।

मुख्य कारण और समाधान:

  1. SSH सेवा चल रही नहीं है
    sudo systemctl status ssh
    

समाधान: यदि सेवा बंद है तो इसे आरंभ करें।

sudo systemctl start ssh
  1. फ़ायरवॉल (UFW) SSH को ब्लॉक कर रहा है
    sudo ufw allow ssh
    sudo ufw enable
    
  1. SSH पोर्ट नंबर बदल दिया गया है यदि SSH कस्टम पोर्ट का उपयोग करता है, तो कनेक्ट करते समय इसे निर्दिष्ट करें।
    ssh -p 2222 username@server-ip-address
    

Q2: मैं डिफ़ॉल्ट SSH पोर्ट कैसे बदल सकता हूँ?

पोर्ट 22 एक सामान्य हमले का लक्ष्य है, इसलिए इसे बदलना सुरक्षा में सुधार करता है।

चरण:

  1. SSH कॉन्फ़िगरेशन फ़ाइल को संपादित करें
    sudo nano /etc/ssh/sshd_config
    
  1. Port निर्देश को संशोधित करें
    Port 2222
    
  1. फ़ायरवॉल के माध्यम से नया पोर्ट अनुमत करें
    sudo ufw allow 2222/tcp
    
  1. SSH सेवा को पुनः आरंभ करें
    sudo systemctl restart ssh
    

इन परिवर्तनों को करने के बाद, नए पोर्ट का उपयोग करके कनेक्ट करें:

ssh -p 2222 username@server-ip-address

Q3: यदि पब्लिक कुंजी प्रमाणीकरण काम नहीं कर रहा है तो मुझे क्या जाँचना चाहिए?

यदि SSH कुंजी प्रमाणीकरण विफल हो जाता है, तो निम्नलिखित की जाँच करें:

  1. सुनिश्चित करें कि पब्लिक कुंजी ठीक से स्थापित है
    ls -l ~/.ssh/authorized_keys
    

सुनिश्चित करें कि authorized_keys मौजूद है और सही कुंजी शामिल है।

  1. फ़ाइल अनुमतियों की जाँच करें
    chmod 600 ~/.ssh/authorized_keys
    chmod 700 ~/.ssh
    
  1. सत्यापित करें कि SSH पब्लिक कुंजी प्रमाणीकरण की अनुमति देता है
    sudo nano /etc/ssh/sshd_config
    

सुनिश्चित करें कि निम्नलिखित प्रविष्टियाँ मौजूद हैं:

PubkeyAuthentication yes
PasswordAuthentication no
  1. SSH सेवा को पुनः आरंभ करें
    sudo systemctl restart ssh
    

Q4: मैं विशिष्ट आईपी पतों से ही SSH पहुँच कैसे अनुमत कर सकता हूँ?

विशिष्ट आईपी पतों तक SSH पहुँच को प्रतिबंधित करना सुरक्षा को काफी बढ़ाता है।

विधि 1: sshd_config को संपादित करें

  1. कॉन्फ़िगरेशन फ़ाइल खोलें
    sudo nano /etc/ssh/sshd_config
    
  1. एक AllowUsers प्रविष्टि जोड़ें
    AllowUsers username@192.168.1.100
    
  1. SSH सेवा को पुनः आरंभ करें
    sudo systemctl restart ssh
    

विधि 2: फ़ायरवॉल (UFW) को कॉन्फ़िगर करें

  1. विशिष्ट आईपी से पहुँच अनुमत करें
    sudo ufw allow from 192.168.1.100 to any port 22
    
  1. अन्यों से पहुँच अस्वीकार करें
    sudo ufw deny 22
    

Q5: मैं SSH सत्र टाइमआउट कैसे बदल सकता हूँ?

यदि आपका SSH सत्र निष्क्रिय होने के बाद डिस्कनेक्ट हो जाता है, तो निम्नलिखित सेटिंग्स को संशोधित करें।

क्लाइंट-साइड सेटिंग्स

  1. ~/.ssh/config में निम्नलिखित जोड़ें :
    Host *
        ServerAliveInterval 60
    

सर्वर-साइड सेटिंग्स

  1. sshd_config को संपादित करें
    sudo nano /etc/ssh/sshd_config
    
  1. जोड़ें या संशोधित करें:
    ClientAliveInterval 60
    ClientAliveCountMax 3
    
  1. SSH सेवा को पुनः आरंभ करें
    sudo systemctl restart ssh
    

सारांश

यह FAQ ने SSH के सबसे सामान्य मुद्दों और समाधानों को कवर किया। जब कोई समस्या होती है, तो हमेशा लॉग्स और कॉन्फ़िगरेशन सेटिंग्स की समीक्षा करें ताकि कारण का पता लगाया जा सके।

“Connection refused” मुद्दों को कैसे हल करें
डिफ़ॉल्ट SSH पोर्ट को कैसे बदलें और सही तरीके से कनेक्ट करें
पब्लिक की ऑथेंटिकेशन विफलताओं को कैसे ट्रबलशूट करें
SSH एक्सेस को विशिष्ट IP पतों तक कैसे सीमित करें
SSH सेशन टाइमआउट्स को कैसे रोकें

9. निष्कर्ष

इस लेख ने Ubuntu पर SSH को कॉन्फ़िगर करने और उपयोग करने के तरीके को समझाया, बुनियादी अवधारणाओं से लेकर उन्नत सुरक्षा प्रथाओं तक। आइए मुख्य बिंदुओं का सारांश दें।

मुख्य बिंदु

1. SSH बेसिक्स

  • SSH एन्क्रिप्टेड संचार के माध्यम से सुरक्षित रिमोट एक्सेस सक्षम करता है।
  • टेलनेट या FTP से अधिक सुरक्षित।
  • ऑथेंटिकेशन विधियाँ में पासवर्ड ऑथेंटिकेशन और पब्लिक की ऑथेंटिकेशन शामिल हैं।

2. SSH सर्वर इंस्टॉल करना

  • OpenSSH को sudo apt install openssh-server के माध्यम से इंस्टॉल करें।
  • systemctl status ssh के साथ सेवा की स्थिति सत्यापित करें।
  • UFW के माध्यम से SSH एक्सेस की अनुमति दें sudo ufw allow ssh का उपयोग करके।

3. SSH एक्सेस कॉन्फ़िगर करना

  • ssh username@server-ip-address के साथ कनेक्ट करें।
  • बेहतर सुरक्षा के लिए पब्लिक की ऑथेंटिकेशन का उपयोग करें।
  • यदि वांछित हो तो sshd_config में पासवर्ड ऑथेंटिकेशन को अक्षम करें।

4. ट्रबलशूटिंग

  • SSH चल रहा है या नहीं जाँचें ( systemctl status ssh )।
  • यदि बदला गया हो तो सही पोर्ट निर्दिष्ट करें ( ssh -p 2222 username@IP )।
  • ~/.ssh/authorized_keys में की अनुमतियाँ सत्यापित करें।

5. सुरक्षा उन्नयन

  • पासवर्ड ऑथेंटिकेशन को अक्षम करें और पब्लिक की पर निर्भर रहें।
  • SSH पोर्ट बदलें स्कैनिंग हमलों को कम करने के लिए।
  • Fail2Ban का उपयोग करें दोहराई जाने वाली लॉगिन विफलताओं को ब्लॉक करने के लिए।
  • SSH एक्सेस को सीमित करें विशिष्ट IP पतों तक जहाँ संभव हो।

अतिरिक्त लर्निंग संसाधन

SSH की समझ को गहरा करने के लिए, निम्नलिखित संसाधनों का अन्वेषण करें:

📚 आधिकारिक दस्तावेज़ीकरण

🛠 संबंधित टूल्स

🎥 अनुशंसित वीडियो

  • YouTube पर “Ubuntu SSH setup” खोजें शुरुआती-अनुकूल ट्यूटोरियल्स खोजने के लिए।

作成した動画を友だち、家族、世界中の人たちと共有…

अगले कदम

एक बार जब आप समझ जाते हैं कि SSH कैसे काम करता है, तो अधिक उन्नत उपयोगों का अन्वेषण करें:

Ansible का उपयोग करके SSH पर सर्वर प्रबंधन को स्वचालित करें

  • कई सर्वरों को कुशलतापूर्वक प्रबंधित करने के लिए आदर्श।

SSH टनलिंग और पोर्ट फॉरवर्डिंग

  • SSH का उपयोग रिमोट डेस्कटॉप कनेक्शनों को सुरक्षित करने या VPN-जैसे टनल बनाने के लिए करें।

SSH लॉग्स की निगरानी करें और सुरक्षा सुधारें

  • fail2ban और logwatch जैसे टूल्स का उपयोग संदिग्ध गतिविधि की निगरानी के लिए करें।

अंतिम विचार

इस गाइड को अंत तक पढ़ने के लिए धन्यवाद! 🎉
Ubuntu पर SSH को ठीक से कॉन्फ़िगर करने से रिमोट प्रबंधन की दक्षता और सुरक्षा में काफी वृद्धि होती है।

जैसे-जैसे आप सीखते रहें, सुरक्षित टनलिंग और सक्रिय निगरानी जैसी उन्नत तकनीकों का अन्वेषण करें ताकि और भी मजबूत सिस्टम बनाएँ।

एक सुरक्षित और उत्पादक SSH अनुभव का आनंद लें! 🖥️🔐