目次
- 1 1. परिचय
- 2 २. SSH को आधारभूत सेटिङ
- 3 सारांश
- 4 ३. SSH को सुरक्षा मजबुत बनाउने
- 5 सारांश
- 6 4. SSH को उन्नत सेटिङ
- 7 सारांश
- 8 5. SSH को समस्या निवारण
- 9 सारांश
- 10 6. FAQ (सामान्य प्रश्नहरू)
- 10.1 6.1 SSH जडान समयसीमा समाप्त भएमा कसरी सम्बोधन गर्ने?
- 10.2 6.2 पासवर्ड बिर्सँदा SSH जडान गर्न नसकिने अवस्थामा कसरी सम्बोधन गर्ने?
- 10.3 6.3 Windows मा SSH प्रयोग गर्ने विधि के हो?
- 10.4 6.4 Ubuntu WSL (Windows Subsystem for Linux) मा SSH सेटिङ गर्ने कसरी?
- 10.5 6.5 SSH सेटिङ पछि गर्नुपर्ने थप सुरक्षा उपायहरू के छन्?
- 10.6 6.6 Ubuntu मा SSH को लगहरू रीयलटाइममा कसरी जाँच्ने?
- 10.7 6.7 SSH लाई थप सुविधाजनक बनाउने कसरी?
- 11 सारांश
- 12 सम्बन्धित लेखहरू
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 जस्ता एम्बेडेड डिभाइसहरूलाई दूरस्थ रूपमा नियन्त्रण गरिन्छ।
२. 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 प्रयोग गर्ने अवस्थामा- आधिकारिक साइट बाट PuTTY डाउनलोड र स्थापना गर्नुहोस्
- PuTTY खोलेर,
Host Name (or IP address)
मा सर्भरको IP ठेगाना प्रविष्ट गर्नुहोस् Connection type
लाईSSH
मा सेट गर्नुहोस् रOpen
क्लिक गर्नुहोस्- प्रयोगकर्ता नाम र पासवर्ड प्रविष्ट गर्नुहोस्
सारांश
यो खण्डमा, Ubuntu मा SSH को आधारभूत सेटअप प्रक्रियाहरूको व्याख्या गरियो।- OpenSSH स्थापना गर्ने र सुरु गर्ने तरिका
- UFW मार्फत SSH कनेक्सन अनुमति दिने सेटिङ
- Linux/macOS र Windows मा SSH कनेक्सन विधि
३. SSH को सुरक्षा मजबुत बनाउने
SSH ले रिमोट कनेक्सन सम्भव बनाउने सुविधाजनक उपकरण हो, तर यसलाई जसरी नै प्रयोग गर्दा सुरक्षा जोखिम बढ्न सक्छ। आक्रमणकारीहरूले ब्रुट फोर्स आक्रमण वा पोर्ट स्क्यान मार्फत SSH सर्भरलाई लक्षित गर्ने प्रायः हुन्छ। त्यसैले, सुरक्षित SSH वातावरण निर्माण गर्न उपयुक्त सुरक्षा सेटिङ गर्नु महत्वपूर्ण छ।३.१ रुट प्रयोगकर्ताको लगइन निषेध गर्ने
डिफल्ट रूपमा, Ubuntu को SSH सेटिङमा रुट प्रयोगकर्ताबाट लगइन अनुमति दिइएको हुन सक्छ। रुट खाता प्रणालीलाई पूर्ण रूपमा व्यवस्थापन गर्ने शक्तिशाली अधिकार राख्छ, त्यसैले आक्रमणकारीहरूको निशानामा पर्न सजिलो हुन्छ। रुट लगइनलाई निषेध गरी सामान्य प्रयोगकर्ता खाता प्रयोग गरेर सुरक्षा बढाउन सकिन्छ।३.१.१ सेटिङ प्रक्रिया
- 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
भएको छ भने, सेटिङ सही रूपमा लागू भएको छ।३.२ पासवर्ड प्रमाणीकरण निष्क्रिय र सार्वजनिक कुञ्जी प्रमाणीकरणको परिचय
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 मा जडान गर्न सकिने प्रयोगकर्ताहरूलाई सीमित गर्न सकिन्छ।३.३.१ सेटिङ प्रक्रिया
- SSH को सेटिङ फाइल
/etc/ssh/sshd_config
खोल्नुहोस्।
sudo nano /etc/ssh/sshd_config
- अनुमति दिने प्रयोगकर्ताहरू निर्दिष्ट गर्नुहोस्।
AllowUsers प्रयोगकर्ता नाम१ प्रयोगकर्ता नाम२
- सेटिङ लागू गर्न SSH पुन: सुरु गर्नुहोस्।
sudo systemctl restart ssh
३.४ SSH पोर्ट परिवर्तन गर्ने
SSH को डिफल्ट पोर्ट (22
) आक्रमणकारीहरूको निशानामा पर्न सजिलो हुन्छ, त्यसैले पोर्ट नम्बर परिवर्तन गरेर सुरक्षालाई मजबुत बनाउन सकिन्छ।३.४.१ सेटिङ प्रक्रिया
- SSH सेटिङ फाइल खोल्नुहोस्।
sudo nano /etc/ssh/sshd_config
Port 22
को लाइन खोज्नुहोस्, उदाहरणका लागिPort 2200
जस्तो परिवर्तन गर्नुहोस्।
Port 2200
- सेटिङ बचत गर्नुहोस् र 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 लागू गर्नुहोस् र अनधिकृत पहुँचलाई अवरोध गर्नुहोस्

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 सेटिङ प्रक्रिया
/etc/ssh/sshd_config
सम्पादन गर्नुहोस्
sudo nano /etc/ssh/sshd_config
- निम्न लाइनहरू थप्नुहोस्
Port 22
Port 2200
- SSH लाई पुन: सुरु गर्नुहोस्
sudo systemctl restart ssh
- 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 लाई अनुमति दिने विधि
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 लाई पुनः सुरु गर्नुहोस्।
sudo systemctl restart ssh
- \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 लगहरू जाँच गरेर समस्या पहिचान गर्नुहोस्
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 भौतिक रूपमा सर्वरमा पहुँच गर्न सकिने अवस्था
- एकल प्रयोगकर्ता मोडमा सुरु गर्नुहोस् (GRUB मेनुमा
recovery mode
छान्नुहोस्) - निम्न कमान्डले पासवर्ड रिसेट गर्नुहोस्
passwd username
- प्रणालीलाई पुन: सुरु गर्नुहोस्
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 प्रयोग गर्नुहोस्
- PuTTY डाउनलोड र स्थापना गर्नुहोस्
Host Name (or IP address)
मा सर्वरको IP ठेगाना प्रविष्ट गर्नुहोस्Connection type
लाई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 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
को उपयोग
सम्बन्धित लेखहरू
सम्बन्धित
1. परिचय Ubuntu मा SSH प्रयोग गरेर, रिमोटबाट सर्वर वा PC मा सुरक्षित रूपमा पहुँच गर्न र सञ्चालन गर्न सकिन्छ। यो लेखमा, […]