Ubuntu SSH सेटिङ पूर्ण गाइड: स्थापना, सुरक्षा र समस्या समाधान

目次

1. परिचय

Ubuntu मा SSH सेटअप गर्नु रिमोट सर्भरको व्यवस्थापनका लागि अत्यन्त महत्वपूर्ण छ। SSH (Secure Shell) ले सुरक्षित एन्क्रिप्टेड सञ्चार प्रदान गर्ने प्रोटोकल हो, र यो दूरस्थ स्थानबाट सर्भरमा पहुँच गर्न, कमान्डहरू चलाउन वा फाइलहरू स्थानान्तरण गर्नका लागि व्यापक रूपमा प्रयोग गरिन्छ। यो लेखमा, Ubuntu मा SSH को सेटअप विधि, आधारभूत स्थापना प्रक्रियाबाट उन्नत सुरक्षा उपायहरू सम्म विस्तृत रूपमा व्याख्या गरिन्छ।

1.1 Ubuntu मा SSH सेटअप गर्ने कारण

1.1.1 SSH भनेको के हो?

SSH (Secure Shell) ले नेटवर्कमा सुरक्षित रूपमा सञ्चार गर्नका लागि प्रोटोकल हो। सामान्यतया, SSH ले रिमोट सर्भरमा लगइन, फाइल स्थानान्तरण, टनलिङ (पोर्ट फर्वार्डिङ) आदि का लागि प्रयोग गरिन्छ। SSH ले परम्परागत Telnet वा FTP भन्दा फरक छ, किनकि यसको सञ्चार सामग्री एन्क्रिप्टेड हुन्छ, जसले गर्दा यसको सुरक्षा उच्च हुन्छ।

1.1.2 Ubuntu मा SSH आवश्यक हुने अवस्थाहरू

Ubuntu लाई रिमोट रूपमा व्यवस्थापन गर्ने परिदृश्यहरूमा निम्न जस्ता छन्।
  • क्लाउड सर्भरको व्यवस्थापन: AWS, GCP, Vultr जस्ता क्लाउड सेवाहरूमा, SSH प्रयोग गरेर रिमोट रूपमा सर्भरमा जडान गरिन्छ।
  • LAN वातावरणमा रिमोट अपरेसन: कम्पनीको भित्रका सर्भरहरू वा विकास मेसिनहरूलाई SSH बाट पहुँच गरेर रिमोट काम गरिन्छ।
  • IoT डिभाइसको व्यवस्थापन: Raspberry Pi जस्ता एम्बेडेड डिभाइसहरूलाई दूरस्थ रूपमा नियन्त्रण गरिन्छ।
Ubuntu को डिफल्ट सेटिङमा, SSH सर्भर निष्क्रिय छ। त्यसैले, SSH प्रयोग गर्नका लागि म्यानुअल रूपमा स्थापना गर्नु र उपयुक्त रूपमा सेटअप गर्नु पर्छ।
年収訴求

२. SSH को आधारभूत सेटिङ

Ubuntu मा SSH प्रयोग गर्नको लागि, SSH सर्भर (OpenSSH) स्थापना गर्नु पर्छ र उपयुक्त सेटिङ गर्नु पर्छ। यो खण्डमा, SSH को स्थापना विधिबाट, आधारभूत सेटिङ, फायरवालको संरचना, जडान विधि बारे विस्तृत व्याख्या गरिन्छ।

२.१ OpenSSH को स्थापना र सुरुवात

२.१.१ OpenSSH भनेको के हो?

OpenSSH (Open Secure Shell) SSH प्रोटोकल कार्यान्वयन गर्ने ओपन सोर्स सफ्टवेयर हो। रिमोट जडान मात्र होइन, सुरक्षित फाइल स्थानान्तरण (SCP वा SFTP) र पोर्ट फर्वार्डिङ जस्ता कार्यहरू पनि समावेश छन्।

२.१.२ OpenSSH को स्थापना

Ubuntu मा, SSH सर्भर डिफल्ट रूपमा स्थापित हुँदैन, त्यसैले निम्न कमान्डले स्थापना गरिन्छ।
sudo apt update && sudo apt install -y openssh-server
यो कमान्डले प्याकेज सूचीलाई नवीनतम अवस्थामा अपडेट गर्छ र OpenSSH सर्भर स्थापना गर्छ।

२.१.३ SSH सर्भरको सुरुवात र स्वचालित सुरुवात सेटिङ

स्थापना सम्पन्न भएपछि, SSH सर्भर सुरु गर्नुहोस् र स्वचालित सुरुवात सक्षम गर्नुहोस्।
sudo systemctl enable --now ssh
enableविकल्पले OS सुरुवातमा स्वचालित रूपमा SSH सेवा सुरु हुने बनाउँछ।

२.१.४ 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

२.२ फायरवाल (UFW) को सेटिङ

Ubuntu मा,ufw(Uncomplicated Firewall) नामक सजिलो सेटिङ हुने फायरवाल उपलब्ध छ। SSH जडान अनुमति दिनको लागि, UFW लाई उपयुक्त रूपमा सेट गर्नुहोस्।

२.२.१ UFW को अवस्था जाँच

पहिले, हालको फायरवालको अवस्था जाँच्नुहोस्।
sudo ufw status
आउटपुट उदाहरण (UFW निष्क्रिय भएको अवस्थामा)
Status: inactive
आउटपुट उदाहरण (UFW सक्रिय भएको अवस्थामा)
Status: active
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere

२.२.२ SSH सञ्चारको अनुमति

SSH को डिफल्ट पोर्ट22अनुमति दिनको लागि, निम्न कमान्ड चलाउनुहोस्।
sudo ufw allow ssh
वा, पोर्ट नम्बर निर्दिष्ट गरेर स्पष्ट रूपमा अनुमति दिन सकिन्छ।
sudo ufw allow 22/tcp

२.२.३ UFW को सक्रियता

UFW निष्क्रिय भएको छ भने, निम्न कमान्डले सक्रिय गर्नुहोस्।
sudo ufw enable
UFW सक्रिय गर्दा, भविष्यका सबै प्राप्त ट्राफिक डिफल्ट रूपमा ब्लक हुने भएकाले, SSH जडान अनुमति भएको जाँचेर मात्र सक्रिय गर्नुहोस्।

२.२.४ सेटिङको जाँच

फायरवालको सेटिङ प्रतिबिम्बित भएको छ वा छैन फेरि जाँच्नुहोस्।
sudo ufw status verbose
आउटपुट उदाहरण
Status: active
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
यसरी देखाइएको छ भने, SSH जडान अनुमति छ।

२.३ SSH को आधारभूत जडान विधि

SSH सर्भर सञ्चालनमा भएको जाँचेर, क्लाइन्ट PC बाट वास्तविक जडान प्रयास गर्नुहोस्।

२.३.१ Linux/macOS बाट जडान

Linux वा macOS मा, टर्मिनल खोलेर निम्न कमान्ड चलाउनुहोस्।
ssh  प्रयोगकर्ता नाम@सर्भरको IP ठेगाना
उदाहरण:
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 थिच्नुहोस् भने जडान स्थापित हुन्छ।

२.३.२ Windows बाट जडान

Windows मा,PowerShellवाPuTTYप्रयोग गरेर SSH जडान गर्न सकिन्छ।PowerShell प्रयोग गर्ने अवस्थामाWindows १० वा पछिल्लोमा, PowerShell मा SSH क्लाइन्ट स्ट्यान्डर्ड रूपमा समावेश छ। निम्न कमान्ड चलाउँदा SSH जडान हुन्छ।
ssh  प्रयोगकर्ता नाम@सर्भरको IP ठेगाना
PuTTY प्रयोग गर्ने अवस्थामा
  1. आधिकारिक साइट बाट PuTTY डाउनलोड र स्थापना गर्नुहोस्
  2. PuTTY खोलेर, Host Name (or IP address) मा सर्भरको IP ठेगाना प्रविष्ट गर्नुहोस्
  3. Connection type लाई SSH मा सेट गर्नुहोस् र Open क्लिक गर्नुहोस्
  4. प्रयोगकर्ता नाम र पासवर्ड प्रविष्ट गर्नुहोस्

सारांश

यो खण्डमा, Ubuntu मा SSH को आधारभूत सेटअप प्रक्रियाहरूको व्याख्या गरियो।
  • OpenSSH स्थापना गर्ने र सुरु गर्ने तरिका
  • UFW मार्फत SSH कनेक्सन अनुमति दिने सेटिङ
  • Linux/macOS र Windows मा SSH कनेक्सन विधि

३. SSH को सुरक्षा मजबुत बनाउने

SSH ले रिमोट कनेक्सन सम्भव बनाउने सुविधाजनक उपकरण हो, तर यसलाई जसरी नै प्रयोग गर्दा सुरक्षा जोखिम बढ्न सक्छ। आक्रमणकारीहरूले ब्रुट फोर्स आक्रमण वा पोर्ट स्क्यान मार्फत SSH सर्भरलाई लक्षित गर्ने प्रायः हुन्छ। त्यसैले, सुरक्षित SSH वातावरण निर्माण गर्न उपयुक्त सुरक्षा सेटिङ गर्नु महत्वपूर्ण छ।

३.१ रुट प्रयोगकर्ताको लगइन निषेध गर्ने

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

३.१.१ सेटिङ प्रक्रिया

  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भएको छ भने, सेटिङ सही रूपमा लागू भएको छ।

३.२ पासवर्ड प्रमाणीकरण निष्क्रिय र सार्वजनिक कुञ्जी प्रमाणीकरणको परिचय

SSH मा, पासवर्ड प्रमाणीकरणभन्दा सार्वजनिक कुञ्जी प्रमाणीकरण प्रयोग गर्नु सुरक्षित हुन्छ। सार्वजनिक कुञ्जी प्रमाणीकरणमा पासवर्ड 입력 गर्नु पर्दैन, SSH कुञ्जीको जोडा (सार्वजनिक कुञ्जी र गोप्य कुञ्जी) प्रयोग गरेर प्रमाणीकरण गरिन्छ, जसले ब्रुट फोर्स आक्रमणको जोखिम कम गर्छ।

३.२.१ SSH कुञ्जीको निर्माण

स्थानीय PC मा SSH कुञ्जी निर्माण गर्नुहोस्।
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
निर्माण सम्पन्न भएपछि, निम्न दुई फाइलहरू उत्पन्न हुन्छन्।
  • गोप्य कुञ्जी (id_rsa)स्थानीय PC मा बचत गर्नुहोस् (कदापि बाहिर सार्वजनिक नगर्नुहोस्)
  • सार्वजनिक कुञ्जी (id_rsa.pub)सर्भर पक्षमा दर्ता गर्नुहोस्

३.२.२ सार्वजनिक कुञ्जीलाई सर्भरमा स्थानान्तरण

निम्न कमान्ड प्रयोग गरेर सार्वजनिक कुञ्जीलाई सर्भरमा स्थानान्तरण गर्नुहोस्।
ssh-copy-id प्रयोगकर्ता नाम@सर्भरको IP ठेगाना

३.२.३ पासवर्ड प्रमाणीकरण निष्क्रिय गर्ने

SSH को सेटिङ फाइल खोल्नुहोस्।
sudo nano /etc/ssh/sshd_config
निम्न लाइन खोज्नुहोस्,PasswordAuthentication noमा परिवर्तन गर्नुहोस्।
PasswordAuthentication no
सेटिङ लागू गर्न SSH पुन: सुरु गर्नुहोस्।
sudo systemctl restart ssh

३.३ विशिष्ट प्रयोगकर्ताहरू मात्र SSH पहुँच अनुमति दिने

SSH को सुरक्षालाई मजबुत बनाउन, SSH मा जडान गर्न सकिने प्रयोगकर्ताहरूलाई सीमित गर्न सकिन्छ।

३.३.१ सेटिङ प्रक्रिया

  1. SSH को सेटिङ फाइल /etc/ssh/sshd_config खोल्नुहोस्।
sudo nano /etc/ssh/sshd_config
  1. अनुमति दिने प्रयोगकर्ताहरू निर्दिष्ट गर्नुहोस्।
AllowUsers प्रयोगकर्ता नाम१ प्रयोगकर्ता नाम२
  1. सेटिङ लागू गर्न SSH पुन: सुरु गर्नुहोस्।
sudo systemctl restart ssh

३.४ SSH पोर्ट परिवर्तन गर्ने

SSH को डिफल्ट पोर्ट (22) आक्रमणकारीहरूको निशानामा पर्न सजिलो हुन्छ, त्यसैले पोर्ट नम्बर परिवर्तन गरेर सुरक्षालाई मजबुत बनाउन सकिन्छ।

३.४.१ सेटिङ प्रक्रिया

  1. SSH सेटिङ फाइल खोल्नुहोस्।
sudo nano /etc/ssh/sshd_config
  1. Port 22 को लाइन खोज्नुहोस्, उदाहरणका लागि Port 2200 जस्तो परिवर्तन गर्नुहोस्।
Port 2200
  1. सेटिङ बचत गर्नुहोस् र SSH पुन: सुरु गर्नुहोस्।
sudo systemctl restart ssh

३.४.२ फायरवाल सेटिङ अपडेट गर्ने

पोर्ट परिवर्तन पछि, नयाँ पोर्ट नम्बरलाई UFW मा अनुमति दिनुहोस्।
sudo ufw allow 2200/tcp
सेटिङ लागू भएको छ वा छैन जाँच गर्नुहोस्।
sudo ufw status

३.५ Fail2Ban ले ब्रुट फोर्स आक्रमण रोक्ने

Fail2Ban ले अनधिकृत SSH पहुँच प्रयासहरू पत्ता लगाउँछ र निश्चित पटक असफल भएका IP ठेगानाहरूलाई अस्थायी रूपमा ब्लक गर्छ।

३.५.१ Fail2Ban को स्थापना

sudo apt install fail2ban -y

३.५.२ सेटिङ फाइल निर्माण गर्ने

Fail2Ban को सेटिङ फाइल प्रतिलिपि गर्नुहोस्।
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
अर्को, सेटिङ फाइल खोल्नुहोस्।
sudo nano /etc/fail2ban/jail.local
निम्न सेटिङ परिवर्तन गर्नुहोस्।
[sshd]
enabled = true
port = 2200
maxretry = 3
findtime = 600
bantime = 3600

३.५.३ Fail2Ban पुन: सुरु गर्ने

सेटिङ लागू गर्न Fail2Ban पुन: सुरु गर्नुहोस्।
sudo systemctl restart fail2ban

३.५.४ Ban सूची जाँच गर्ने

sudo fail2ban-client status sshd

सारांश

यस खण्डमा, SSH को सुरक्षा मजबुत बनाउने विधिहरूको व्याख्या गरियो।
  • रुट लगइनलाई निषेध गर्नुहोस्
  • पासवर्ड प्रमाणीकरणलाई असक्षम गर्नुहोस् र सार्वजनिक कुञ्जी प्रमाणीकरण लागू गर्नुहोस्
  • केही विशेष प्रयोगकर्ताहरूलाई मात्र SSH पहुँच अनुमति दिनुहोस्
  • SSH पोर्ट परिवर्तन गर्नुहोस्
  • Fail2Ban लागू गर्नुहोस् र अनधिकृत पहुँचलाई अवरोध गर्नुहोस्
यी उपायहरू अपनाएर, थप सुरक्षित SSH वातावरण निर्माण गर्न सकिन्छ।

4. SSH को उन्नत सेटिङ

SSH को आधारभूत सेटिङ र सुरक्षा मजबुतीकरण पूरा भएपछि, अर्को उन्नत सेटिङ गर्दै, SSH लाई थप सुविधाजनक र सुरक्षित रूपमा उपयोग गर्न सकिन्छ। यस खण्डमा, Ubuntu 22.10 वा त्यसपछिका संस्करणहरूमाssh.socketको व्यवस्थापन, 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 सुरुङ प्रयोग गर्दा, रिमोट सर्भर र स्थानीय PC बीच सुरक्षित सञ्चार स्थापित गर्न सकिन्छ, र बाह्य नेटवर्क बिना डाटा स्थानान्तरण गर्न सकिन्छ।

4.2.1 स्थानीय पोर्ट फर्वार्डिङ

रिमोट सर्भरमा रहेको डाटाबेस वा वेब सर्भरमा सुरक्षित पहुँच गर्न सुविधाजनक छ।उदाहरण: रिमोटको MySQL सर्भर (३३०६ नम्बर पोर्ट) मा स्थानीय PC बाट जडान
ssh -L 3306:localhost:3306 प्रयोगकर्ता नाम@सर्भरको IP ठेगाना

4.2.2 उल्टो पोर्ट फर्वार्डिङ

बाह्य SSH सर्भर मार्फत, आन्तरिक नेटवर्कको सेवालाई सार्वजनिक गर्न प्रयोग गरिन्छ।उदाहरण: स्थानीयको वेब सर्भर (८० नम्बर पोर्ट) लाई रिमोट सर्भरको ८०८० नम्बर पोर्टमा सार्वजनिक गर्नुहोस्
ssh -R 8080:localhost:80 प्रयोगकर्ता नाम@सर्भरको IP ठेगाना

4.2.3 गतिशील पोर्ट फर्वार्डिङ

SSH लाई SOCKS प्रोक्सीको रूपमा प्रयोग गर्दा, गुमनाम रूपमा इन्टरनेट ब्राउज गर्न सकिन्छ।उदाहरण: स्थानीय PC को १०८० नम्बर पोर्टमा SOCKS प्रोक्सी सिर्जना गर्नुहोस्
ssh -D 1080 प्रयोगकर्ता नाम@सर्भरको IP ठेगाना

4.3 बहु पोर्टमा SSH प्रतीक्षा

सामान्यतया, SSH एउटा पोर्ट (डिफल्ट २२) मा कार्य गर्दछ, तर बहु पोर्टमा प्रतीक्षा गर्दा, फरक नेटवर्क वातावरणसँग सामना गर्न सकिन्छ।

4.3.1 सेटिङ प्रक्रिया

  1. /etc/ssh/sshd_config सम्पादन गर्नुहोस्
sudo nano /etc/ssh/sshd_config
  1. निम्न लाइनहरू थप्नुहोस्
Port 22
Port 2200
  1. SSH लाई पुन: सुरु गर्नुहोस्
sudo systemctl restart ssh
  1. UFW मा नयाँ पोर्ट अनुमति दिनुहोस्
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 को प्रतीक्षा
  • विशिष्ट IP ठेगानाहरू मात्र SSH लाई अनुमति दिने विधि
यी सेटिङहरू लागू गरेर, SSH को सुरक्षा र सुविधालाई सुधार गर्न सकिन्छ। {“translated_html”: ”

5. SSH को समस्या निवारण

SSH सेटअप गरे पनि, विभिन्न कारणले जडान गर्न सकिँदैन। यो खण्डमा, SSH जडान गर्दा सजिलै उत्पन्न हुने समस्याहरू र तिनका समाधानहरू, समस्या अनुसार व्यवस्थित गरेर व्याख्या गरिन्छ।

5.1 SSH मा जडान गर्न नसकिने अवस्था

SSH मा जडान गर्ने प्रयास गर्दाConnection refusedवाtimeoutजस्ता त्रुटिहरू उत्पन्न हुने अवस्थामा, केही कारणहरू सोच्न सकिन्छ।

5.1.1 SSH सेवा सञ्चालनमा छैन

SSH सर्भर सामान्य रूपमा सुरु नभएको सम्भावना छ। पहिले, SSH को स्थिति जाँच्नुहोस्।
sudo systemctl status ssh
समाधान:
    • \n
    • Active: inactive (dead) वा failed को अवस्थामा, SSH लाई पुनः सुरु गर्नुहोस्।
\n
sudo systemctl restart ssh
    • \n
    • पुनः सुरु पछि स्वचालित सुरुवातलाई सक्रिय गर्न चाहनुहुन्छ भने, निम्न कमान्ड चलाउनुहोस्।
\n
sudo systemctl enable ssh

5.1.2 पोर्ट उपयुक्त रूपमा खुला छैन

SSH पोर्ट परिवर्तन गरिएको छ भने, जडान गर्दा सही पोर्ट निर्दिष्ट गर्नुपर्छ।
ssh -p 2200 username@server\'s IP address
खुला भएका पोर्टहरू जाँच्नको लागि, निम्न कमान्ड प्रयोग गर्नुहोस्।
sudo netstat -tulnp | grep ssh
वा,ssकमान्ड पनि प्रयोग गर्न सकिन्छ।
ss -tulnp | grep ssh

5.1.3 फायरवाल (UFW) को सेटिङ जाँच्नुहोस्

UFW ले SSH को सञ्चार रोकेको छैन भनेर जाँच्नुहोस्।
sudo ufw status
SSH अनुमति नदिइएको अवस्थामा समाधान:
sudo ufw allow 22/tcp
पोर्ट परिवर्तन गरिएको छ भने, उपयुक्त पोर्टलाई अनुमति दिनुहोस्।
sudo ufw allow 2200/tcp

5.2 प्रमाणीकरण त्रुटि उत्पन्न हुने अवस्था

5.2.1 प्रयोगकर्ता नाम वा पासवर्ड गलत छ

SSH मा लगइन गर्दा सही प्रयोगकर्ता नाम प्रयोग भएको छ भनेर जाँच्नुहोस्।
ssh username@server\'s IP address

5.2.2 सार्वजनिक कुञ्जी प्रमाणीकरण सही रूपमा सेट गरिएको छैन

सार्वजनिक कुञ्जी प्रमाणीकरण प्रयोग गर्दै हुनुहुन्छ भने, सर्भरमा~/.ssh/authorized_keysमा सही सार्वजनिक कुञ्जी दर्ता भएको छ भनेर जाँच्नुहोस्।
cat ~/.ssh/authorized_keys
स्थानीय सार्वजनिक कुञ्जी (~/.ssh/id_rsa.pub) सँग मेल खान्छ भनेर जाँच्नुहोस्।

5.2.3 .ssh डाइरेक्टरीको अनुमति उपयुक्त छैन

SSH को सेटिङमा, कुञ्जी फाइलहरू वा.sshडाइरेक्टरीको अनुमतिहरू कडा रूपमा व्यवस्थापन गरिन्छ।
chmod 700 ~/.ssh\nchmod 600 ~/.ssh/authorized_keys
यसैगरी,/home/usernameडाइरेक्टरीको अनुमति पनि उपयुक्त रूपमा सेट भएको छ भनेर जाँच्नुहोस्।
chmod 755 /home/username

5.3 SSH जडान अस्थिर छ वा चाँडै विच्छेद हुन्छ

SSH जडान अस्थिर छ र निश्चित समयपछि विच्छेद हुन्छ भने, सर्भर पक्ष वा क्लाइन्ट पक्षको समय समाप्त सेटिङ कारण हुन सक्छ।

5.3.1 ClientAliveInterval लाई समायोजन गर्नुहोस्

SSH को सेटिङ फाइल/etc/ssh/sshd_configखोल्नुहोस्, निम्न प्यारामिटरहरू थप्नुहोस् वा परिवर्तन गर्नुहोस्।
ClientAliveInterval 60\nClientAliveCountMax 3
सेटिङ पछि, SSH लाई पुनः सुरु गर्नुहोस्।
sudo systemctl restart ssh

5.3.2 क्लाइन्ट पक्षको सेटिङ परिवर्तन गर्नुहोस्

स्थानीय SSH क्लाइन्ट निश्चित समयपछि विच्छेद हुन्छ भने, क्लाइन्ट पक्षको सेटिङ फाइल (~/.ssh/config) मा यस्तो सेटिङ थप्दा सुधार हुन सक्छ।
Host *\n    ServerAliveInterval 60\n    ServerAliveCountMax 3

5.4 SSH लग जाँच्ने विधि

SSH को समस्या समाधान गर्नको लागि, लग जाँच गर्नु महत्वपूर्ण छ।

5.4.1 SSH लगको रीयलटाइम जाँच

SSH को लग रीयलटाइममा जाँच्नको लागि, निम्न कमान्ड चलाउनुहोस्।
sudo journalctl -u ssh -f

5.4.2 SSH लगलाई विगतका डाटाबाट जाँच

विगतका लग खोज्नको लागि, निम्न कमान्ड प्रयोग गर्नुहोस्।
sudo cat /var/log/auth.log | grep ssh
यसैगरी, विशेष त्रुटि सन्देश खोज्न पनि सकिन्छ।
sudo grep \"Failed password\" /var/log/auth.log
“}

सारांश

यो खण्डमा, 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/configमा निम्न सेटिङ थप्दा, सर्वरबाट विच्छेद रोक्न सकिन्छ।
Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3

6.2 पासवर्ड बिर्सँदा SSH जडान गर्न नसकिने अवस्थामा कसरी सम्बोधन गर्ने?

6.2.1 भौतिक रूपमा सर्वरमा पहुँच गर्न सकिने अवस्था

  1. एकल प्रयोगकर्ता मोडमा सुरु गर्नुहोस् (GRUB मेनुमा recovery mode छान्नुहोस्)
  2. निम्न कमान्डले पासवर्ड रिसेट गर्नुहोस्
passwd username
  1. प्रणालीलाई पुन: सुरु गर्नुहोस्

6.2.2 भौतिक पहुँच नभएको अवस्था (क्लाउड VPS आदि)

  • VPS को कन्सोल सुविधा प्रयोग गरेर रिमोट जडान गर्नुहोस्
  • SSH को सार्वजनिक कुञ्जी प्रमाणीकरण प्रयोग गर्नुहोस्

6.3 Windows मा SSH प्रयोग गर्ने विधि के हो?

6.3.1 PowerShell प्रयोग गर्नुहोस्

Windows 10 वा त्यसपछिका संस्करणहरूमा, PowerShell मा SSH क्लाइन्ट मानक रूपमा उपलब्ध छ। निम्न कमान्डले जडान गर्न सकिन्छ।
ssh username@server_ip

6.3.2 PuTTY प्रयोग गर्नुहोस्

  1. PuTTY डाउनलोड र स्थापना गर्नुहोस्
  2. Host Name (or IP address) मा सर्वरको IP ठेगाना प्रविष्ट गर्नुहोस्
  3. Connection type लाई 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 SSH सेटिङ पछि गर्नुपर्ने थप सुरक्षा उपायहरू के छन्?

6.5.1 Fail2Ban को स्थापना

SSH मा अनधिकृत पहुँच रोक्नका लागि, Fail2Ban स्थापना गर्नुहोस्।
sudo apt install fail2ban -y
सेटिङ फाइल/etc/fail2ban/jail.localसम्पादन गर्नुहोस् र SSH को सुरक्षा सक्रिय गर्नुहोस्।
[sshd]
enabled = true
port = 22
maxretry = 3
findtime = 600
bantime = 3600
Fail2Ban लाई पुन: सुरु गरेर सेटिङ लागू गर्नुहोस्।
sudo systemctl restart fail2ban

6.5.2 SSH पोर्ट परिवर्तन

/etc/ssh/sshd_configखोल्नुहोस् र डिफल्ट22बाट परिवर्तन गर्नुहोस्।
Port 2200
सेटिङ पछि, SSH पुन: सुरु गर्नुहोस् र UFW मा नयाँ पोर्ट अनुमति दिनुहोस्।
sudo ufw allow 2200/tcp

6.6 Ubuntu मा SSH को लगहरू रीयलटाइममा कसरी जाँच्ने?

SSH को लगहरू रीयलटाइममा निगरानी गर्नका लागि, निम्न कमान्ड चलाउनुहोस्।
sudo journalctl -u ssh -f
पहिलाका SSH लगहरू जाँच्नका लागि, निम्न कमान्ड प्रयोग गर्नुहोस्।
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 जडान गर्न सकिन्छ।
ssh myserver

6.7.2 ssh-agent प्रयोग गर्नुहोस्

गोप्य कुञ्जीको पासफ्रेज छोड्नका लागि,ssh-agentप्रयोग गर्नुहोस्।
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa

सारांश

यस खण्डमा, SSH को सामान्य प्रश्नहरू र तिनीहरूको समाधानहरू प्रस्तुत गरियो।
  • SSH को टाइमआउट उपायहरू
  • पासवर्ड बिर्सिएमा रिकभरी विधि
  • विन्डोज तथा WSL मा SSH को प्रयोग
  • थप सुरक्षा उपायहरू
  • SSH लगहरू जाँच्ने विधि
  • अझ सुविधाजनक रूपमा प्रयोग गर्नका लागि .ssh/config को उपयोग
यस लेखको सामग्रीलाई उपयोग गरेर, सुरक्षित र आरामदायक SSH वातावरण निर्माण गर्न सकिन्छ, र रिमोट सर्भर व्यवस्थापन सहज रूपमा गर्न सकिन्छ।

सम्बन्धित लेखहरू

सम्बन्धित

1. परिचय Ubuntu मा SSH प्रयोग गरेर, रिमोटबाट सर्वर वा PC मा सुरक्षित रूपमा पहुँच गर्न र सञ्चालन गर्न सकिन्छ। यो लेखमा, […]

年収訴求