目次
- 1 1. परिचय
- 2 2. SSH को आधारभूत सेटिङ
- 3 सारांश
- 4 3. 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 जस्ता एम्बेडेड डिभाइसहरूलाई दूरीबाट नियन्त्रण गर्नुहोस्।
2. SSH को आधारभूत सेटिङ
Ubuntu मा SSH प्रयोग गर्नको लागि, SSH सर्भर (OpenSSH) स्थापना गर्नु पर्छ र उपयुक्त सेटिङ गर्नु पर्छ। यो खण्डमा, SSH को स्थापना विधिबाट, आधारभूत सेटिङ, फायरवालको संरचना, कनेक्सन विधि बारे विस्तृत व्याख्या गरिन्छ।2.1 OpenSSH को स्थापना र सुरुवात
2.1.1 OpenSSH भनेको के हो?
OpenSSH (Open Secure Shell) SSH प्रोटोकल कार्यान्वयन गर्ने ओपन सोर्स सफ्टवेयर हो। रिमोट कनेक्सन मात्र होइन, सुरक्षित फाइल ट्रान्सफर (SCP वा SFTP) र पोर्ट फर्वार्डिङ जस्ता कार्यक्षमताहरू पनि समावेश छन्।2.1.2 OpenSSH को स्थापना
Ubuntu मा, SSH सर्भर डिफल्ट रूपमा स्थापना गरिएको हुँदैन, त्यसैले निम्न कमान्डले स्थापना गरिन्छ।sudo apt update && sudo apt install -y openssh-serverयो कमान्डले प्याकेज सूचीलाई नवीनतम अवस्थामा अपडेट गर्दछ र OpenSSH सर्भर स्थापना गर्दछ।2.1.3 SSH सर्भरको सुरुवात र स्वचालित सुरुवात सेटिङ
स्थापना सम्पन्न भएपछि, SSH सर्भर सुरु गर्नुहोस् र स्वचालित सुरुवात सक्षम गर्नुहोस्।sudo systemctl enable --now sshenable विकल्पले 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 ssh2.2 फायरवाल (UFW) को सेटिङ
Ubuntu मा,ufw (Uncomplicated Firewall) नामक सजिलो सेटिङ गर्न सकिने फायरवाल तयार छ। SSH कनेक्सन अनुमति दिनको लागि, UFW लाई उपयुक्त रूपमा सेटिङ गर्नुहोस्।2.2.1 UFW को अवस्था जाँच
पहिले, हालको फायरवालको अवस्था जाँच गर्नुहोस्।sudo ufw statusआउटपुट उदाहरण (UFW अक्षम भएको अवस्थामा)Status: inactiveआउटपुट उदाहरण (UFW सक्रिय भएको अवस्थामा)Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere2.2.2 SSH सञ्चारको अनुमति
SSH को डिफल्ट पोर्ट22 अनुमति दिनको लागि, निम्न कमान्ड कार्यान्वयन गर्नुहोस्।sudo ufw allow sshवा, पोर्ट नम्बर निर्दिष्ट गरेर स्पष्ट रूपमा अनुमति दिन सकिन्छ।sudo ufw allow 22/tcp2.2.3 UFW को सक्रियता
UFW अक्षम भएको छ भने, निम्न कमान्डले सक्रिय गर्नुहोस्।sudo ufw enableUFW सक्रिय गर्दा, भविष्यका सबै प्राप्त ट्राफिक डिफल्ट रूपमा ब्लक हुने भएकाले, SSH कनेक्सन अनुमति दिइएको छ भनेर जाँचेर मात्र सक्रिय गर्नुहोस्।2.2.4 सेटिङको जाँच
फायरवालको सेटिङ प्रतिबिम्बित भएको छ कि फेरि जाँच गर्नुहोस्।sudo ufw status verboseआउटपुट उदाहरणStatus: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)यसरी देखाइएको छ भने, SSH कनेक्सन अनुमति दिइएको छ।2.3 SSH को आधारभूत कनेक्सन विधि
SSH सर्भर सञ्चालनमा रहेको जाँचेर, क्लाइन्ट PC बाट वास्तविक कनेक्सन प्रयास गर्नुहोस्।2.3.1 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 थिच्नुहोस् भने कनेक्सन स्थापित हुन्छ।2.3.2 Windows बाट कनेक्सन
Windows मा, PowerShell वा PuTTY प्रयोग गरेर SSH कनेक्सन गर्न सकिन्छ।PowerShell प्रयोग गर्दाWindows 10 वा पछाडि, 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 जडान विधि
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 पासवर्ड प्रमाणीकरण निष्क्रिय र सार्वजनिक कुञ्जी प्रमाणीकरणको परिचय
SSH मा, पासवर्ड प्रमाणीकरणभन्दा सार्वजनिक कुञ्जी प्रमाणीकरण प्रयोग गर्नु सुरक्षित हुन्छ। सार्वजनिक कुञ्जी प्रमाणीकरणमा पासवर्ड 입력 गर्नु पर्दैन, SSH कुञ्जीको जोडा (सार्वजनिक कुञ्जी र गोप्य कुञ्जी) प्रयोग गरेर प्रमाणीकरण गरिन्छ, जसले ब्रुट फोर्स आक्रमणको जोखिम कम गर्छ।3.2.1 SSH कुञ्जीको निर्माण
स्थानीय PC मा SSH कुञ्जी निर्माण गर्नुहोस्।ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsaनिर्माण सम्पन्न भएपछि, निम्न दुई फाइलहरू उत्पन्न हुन्छन्।- गोप्य कुञ्जी (
id_rsa) → स्थानीय PC मा बचत गर्नुहोस् (कुनै पनि बाहिरी भागमा सार्वजनिक नगर्नुहोस्) - सार्वजनिक कुञ्जी (
id_rsa.pub) → सर्भर पक्षमा दर्ता गर्नुहोस्
3.2.2 सार्वजनिक कुञ्जीलाई सर्भरमा स्थानान्तरण
निम्न कमान्ड प्रयोग गरेर सार्वजनिक कुञ्जीलाई सर्भरमा स्थानान्तरण गर्नुहोस्।ssh-copy-id प्रयोगकर्ता नाम@सर्भरको IP ठेगाना3.2.3 पासवर्ड प्रमाणीकरण निष्क्रिय
SSH को सेटिङ फाइल खोल्नुहोस्।sudo nano /etc/ssh/sshd_configनिम्न लाइन खोज्नुहोस् र PasswordAuthentication no मा परिवर्तन गर्नुहोस्।PasswordAuthentication noसेटिङ लागू गर्न SSH लाई पुन: सुरु गर्नुहोस्।sudo systemctl restart ssh3.3 विशिष्ट प्रयोगकर्ताहरू मात्र SSH पहुँच अनुमति
SSH को सुरक्षालाई सुधार्न, SSH मा जडान गर्न सकिने प्रयोगकर्ताहरूलाई सीमित गर्न सकिन्छ।3.3.1 सेटिङ प्रक्रिया
- SSH को सेटिङ फाइल
/etc/ssh/sshd_configलाई खोल्नुहोस्।
sudo nano /etc/ssh/sshd_config- अनुमति दिने प्रयोगकर्ताहरू निर्दिष्ट गर्नुहोस्।
AllowUsers प्रयोगकर्ता नाम1 प्रयोगकर्ता नाम2- सेटिङ लागू गर्न, SSH लाई पुन: सुरु गर्नुहोस्।
sudo systemctl restart ssh3.4 SSH पोर्टको परिवर्तन
SSH को डिफल्ट पोर्ट (22) आक्रमणकारीहरूको निशानामा पर्न सजिलो हुन्छ, त्यसैले पोर्ट नम्बर परिवर्तन गरेर सुरक्षालाई सुधार गर्न सकिन्छ।3.4.1 सेटिङ प्रक्रिया
- SSH सेटिङ फाइल खोल्नुहोस्।
sudo nano /etc/ssh/sshd_configPort 22को लाइन खोज्नुहोस् र उदाहरणका लागिPort 2200जस्तो परिवर्तन गर्नुहोस्।
Port 2200- सेटिङ बचत गर्नुहोस् र SSH लाई पुन: सुरु गर्नुहोस्।
sudo systemctl restart ssh3.4.2 फायरवाल सेटिङ अपडेट
पोर्ट परिवर्तन पछि, नयाँ पोर्ट नम्बरलाई UFW मा अनुमति दिनुहोस्।sudo ufw allow 2200/tcpसेटिङ लागू भएको छ वा छैन जाँच गर्नुहोस्।sudo ufw status3.5 Fail2Ban ले ब्रुट फोर्स आक्रमण रोक्नुहोस्
Fail2Ban ले अनधिकृत SSH पहुँच प्रयासहरू पत्ता लगाउँछ र निश्चित संख्यामा असफल भएका IP ठेगानाहरूलाई अस्थायी रूपमा ब्लक गर्छ।3.5.1 Fail2Ban को स्थापना
sudo apt install fail2ban -y3.5.2 सेटिङ फाइलको निर्माण
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 = 36003.5.3 Fail2Ban को पुन: सुरु
सेटिङ लागू गर्न Fail2Ban लाई पुन: सुरु गर्नुहोस्।sudo systemctl restart fail2ban3.5.4 Ban सूचीको जाँच
sudo fail2ban-client status sshdसारांश
यो खण्डमा, SSH को सुरक्षालाई मजबुत बनाउने विधिहरूको व्याख्या गरियो।- root लगइनलाई निषेध गर्नुहोस्
- पासवर्ड प्रमाणीकरणलाई असक्षम गर्नुहोस् र सार्वजनिक कुञ्जी प्रमाणीकरणलाई लागू गर्नुहोस्
- विशिष्ट प्रयोगकर्ताहरूको लागि मात्र SSH पहुँच अनुमति दिनुहोस्
- SSH पोर्ट परिवर्तन गर्नुहोस्
- Fail2Ban लाई लागू गर्नुहोस् र अनधिकृत पहुँचलाई अवरोध गर्नुहोस्

4. SSH को उन्नत सेटिङ
SSH को आधारभूत सेटिङ र सुरक्षा मजबुत बनाउने कार्य पूरा भएपछि, अब उन्नत सेटिङ गर्नुहोस्, SSH लाई थप सुविधाजनक र सुरक्षित रूपमा उपयोग गर्न सकिन्छ। यस खण्डमा, Ubuntu २२.१० वा त्यसपछिका संस्करणहरूमाssh.socket को व्यवस्थापन, SSH टनल (पोर्ट फर्वार्डिङ), बहु पोर्टको प्रतीक्षा सेटिङ, विशिष्ट IP ठेगानाहरूको अनुमति आदि, व्यावहारिक SSH सेटिङहरू बारे विस्तृत व्याख्या गरिन्छ।४.१ Ubuntu २२.१० वा त्यसपछिका ssh.socket को उपयोग
Ubuntu २२.१० वा त्यसपछिका संस्करणहरूमा, SSH सेवाको व्यवस्थापन ssh.service बाट ssh.socket मा परिवर्तन हुन सक्छ। यो, SSH ले अनुरोध प्राप्त गर्दा गतिशील रूपमा सुरु हुने संयन्त्र हो, जसले स्रोतहरूको बचतमा योगदान दिन्छ।४.१.१ 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४.१.२ 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४.२ SSH टनल (पोर्ट फर्वार्डिङ)
SSH टनल प्रयोग गर्दा, रिमोट सर्भर र स्थानीय PC बीच सुरक्षित सञ्चार स्थापित गर्न सकिन्छ, र बाह्य नेटवर्क बिना डाटा स्थानान्तरण गर्न सकिन्छ।४.२.१ स्थानीय पोर्ट फर्वार्डिङ
रिमोट सर्भरमा रहेको डाटाबेस वा वेब सर्भरमा सुरक्षित पहुँच गर्न सुविधाजनक हुन्छ।उदाहरण: रिमोट MySQL सर्भर (३३०६ पोर्ट) मा स्थानीय PC बाट जडानssh -L 3306:localhost:3306 प्रयोगकर्ता_नाम@सर्भरको_IP_ठेगाना४.२.२ उल्टो पोर्ट फर्वार्डिङ
बाह्य SSH सर्भर मार्फत आन्तरिक नेटवर्कको सेवालाई सार्वजनिक गर्न प्रयोग गरिन्छ।उदाहरण: स्थानीय वेब सर्भर (८० पोर्ट) लाई रिमोट सर्भरको ८०८० पोर्टमा सार्वजनिक गर्नुहोस्ssh -R 8080:localhost:80 प्रयोगकर्ता_नाम@सर्भरको_IP_ठेगाना४.२.३ गतिशील पोर्ट फर्वार्डिङ
SSH लाई SOCKS प्रोक्सीको रूपमा प्रयोग गर्दा, गुमनाम रूपमा इन्टरनेट ब्राउज गर्न सकिन्छ।उदाहरण: स्थानीय PC को १०८० पोर्टमा SOCKS प्रोक्सी सिर्जना गर्नुहोस्ssh -D 1080 प्रयोगकर्ता_नाम@सर्भरको_IP_ठेगाना४.३ बहु पोर्टमा SSH प्रतीक्षा
सामान्यतया, SSH एउटा पोर्ट (डिफल्ट २२) मा कार्य गर्दछ, तर बहु पोर्टमा प्रतीक्षा गर्दा विभिन्न नेटवर्क वातावरणसँग सामना गर्न सकिन्छ।४.३.१ सेटिङ प्रक्रिया
/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४.४ विशिष्ट IP ठेगाना मात्र SSH अनुमति दिनुहोस्
SSH मा पहुँच सीमित गर्दै, विशिष्ट IP ठेगानाबाट मात्र जडान अनुमति दिएर सुरक्षा मजबुत बनाउन सकिन्छ।४.४.१ /etc/hosts.allow सेटिङ
विशिष्ट IP ठेगानाबाट मात्र SSH पहुँच अनुमति दिन, निम्न सेटिङ गर्नुहोस्।sudo nano /etc/hosts.allowनिम्न लाइन थप्नुहोस् (192.168.1.100 भागलाई अनुमति दिने IP ठेगानामा परिवर्तन गर्नुहोस्)।sshd: 192.168.1.100४.४.२ /etc/hosts.deny सेटिङ
सबै IP ठेगानाहरूलाई डिफल्ट रूपमा अस्वीकार गर्न, निम्न सेटिङ थप्नुहोस्।sudo nano /etc/hosts.denysshd: 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 वा समय समाप्त जस्ता त्रुटिहरू उत्पन्न हुने अवस्थामा, केही कारणहरू सम्भावित छन्।5.1.1 SSH सेवा सञ्चालनमा नभएको
SSH सर्भर सामान्य रूपमा सुरु नभएको सम्भावना छ। पहिले, SSH को स्थिति जाँचौं।sudo systemctl status sshसमाधान:Active: inactive (dead)वाfailedको अवस्थामा, SSH लाई पुन: सुरु गर्नुहोस्।
sudo systemctl restart ssh- पुन: सुरु पछि स्वचालित सुरुवातलाई सक्षम बनाउन, निम्न कमान्ड चलाउनुहोस्।
sudo systemctl enable ssh5.1.2 पोर्ट उपयुक्त रूपमा खुला नभएको
SSH पोर्ट परिवर्तन गरिएको अवस्थामा, जडान गर्दा सही पोर्ट निर्दिष्ट गर्न आवश्यक छ।ssh -p 2200 प्रयोगकर्ता नाम@सर्भरको IP ठेगानायसबाहेक, खुला पोर्ट जाँच्नको लागि, निम्न कमान्ड प्रयोग गर्नुहोस्।sudo netstat -tulnp | grep sshवा, ss कमान्ड पनि प्रयोग गर्न सकिन्छ।ss -tulnp | grep ssh5.1.3 फायरवाल (UFW) को सेटिङ जाँच
UFW ले SSH को सञ्चारलाई अवरोध नगरेको जाँच गर्नुहोस्।sudo ufw statusSSH अनुमति नदिइएको अवस्थामा समाधान:sudo ufw allow 22/tcpपोर्ट परिवर्तन गरिएको छ भने, उपयुक्त पोर्टलाई अनुमति दिनुहोस्।sudo ufw allow 2200/tcp5.2 प्रमाणीकरण त्रुटि उत्पन्न हुने अवस्था
5.2.1 प्रयोगकर्ता नाम वा पासवर्ड गलत भएको
SSH मा लगइन गर्दा, सही प्रयोगकर्ता नाम प्रयोग गरिएको छ कि जाँच गर्नुहोस्।ssh प्रयोगकर्ता नाम@सर्भरको IP ठेगाना5.2.2 सार्वजनिक कुञ्जी प्रमाणीकरण सही रूपमा सेट नभएको
सार्वजनिक कुञ्जी प्रमाणीकरण प्रयोग गरिएको छ भने, सर्भरमा~/.ssh/authorized_keys मा सही सार्वजनिक कुञ्जी दर्ता भएको छ कि जाँच गर्नुहोस्।cat ~/.ssh/authorized_keysस्थानीय सार्वजनिक कुञ्जी (~/.ssh/id_rsa.pub) सँग मेल खान्छ कि जाँच गर्नुहोस्।5.2.3 .ssh डाइरेक्टरीको अनुमति उपयुक्त नभएको
SSH को सेटिङमा, कुञ्जी फाइलहरू वा .ssh डाइरेक्टरीको अनुमति कडा रूपमा व्यवस्थापन गरिन्छ।chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keysयसबाहेक, /home/प्रयोगकर्ता नाम डाइरेक्टरीको अनुमति पनि उपयुक्त रूपमा सेट भएको छ कि जाँच गर्नुहोस्।chmod 755 /home/प्रयोगकर्ता नाम5.3 SSH जडान अस्थिर वा तुरुन्तै विच्छेद हुने अवस्था
SSH जडान अस्थिर छ र निश्चित समय पछि विच्छेद हुने अवस्थामा, सर्भर पक्ष वा क्लाइन्ट पक्षको समय समाप्त सेटिङ कारण हुन सक्छ।5.3.1 ClientAliveInterval लाई समायोजन गर्नुहोस्
SSH को सेटिङ फाइल /etc/ssh/sshd_config खोल्नुहोस् र निम्न प्यारामिटरहरू थप्नुहोस् वा परिवर्तन गर्नुहोस्।ClientAliveInterval 60
ClientAliveCountMax 3सेटिङ पछि, SSH लाई पुन: सुरु गर्नुहोस्।sudo systemctl restart ssh5.3.2 क्लाइन्ट पक्षको सेटिङ परिवर्तन गर्नुहोस्
स्थानीय SSH क्लाइन्ट निश्चित समय पछि विच्छेद हुने अवस्थामा, क्लाइन्ट पक्षको सेटिङ फाइल (~/.ssh/config) मा यस्तो सेटिङ थप्दा सुधार हुन सक्छ।Host *
ServerAliveInterval 60
ServerAliveCountMax 35.4 SSH लगको जाँच विधि
SSH को समस्या समाधानको लागि, लग जाँच गर्नु महत्वपूर्ण छ।5.4.1 SSH लगको रीयलटाइम जाँच
SSH को लग रीयलटाइममा जाँच गर्नको लागि, निम्न कमान्ड चलाउनुहोस्।sudo journalctl -u ssh -f5.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 ssh6.1.2 क्लाइन्ट पक्षको सेटिङ परिवर्तन
स्थानीय~/.ssh/config मा निम्न सेटिङ थप्दा, सर्वरबाट विच्छेद रोक्न सकिन्छ।Host *
ServerAliveInterval 60
ServerAliveCountMax 36.2 पासवर्ड बिर्सिएर SSH जडान गर्न नसकिने अवस्थामा कसरी सम्बोधन गर्ने?
6.2.1 शारीरिक रूपमा सर्वरमा पहुँच गर्न सकिने अवस्था
- एकल प्रयोगकर्ता मोडमा सुरु गर्नुहोस् (GRUB मेनुमा
recovery modeछान्नुहोस्) - निम्न कमान्डले पासवर्ड रिसेट गर्नुहोस्
passwd प्रयोगकर्ता नाम- प्रणालीलाई पुन: सुरु गर्नुहोस्
6.2.2 शारीरिक पहुँच नभएको अवस्था (क्लाउड VPS आदि)
- VPS को कन्सोल सुविधा प्रयोग गरेर रिमोट जडान गर्नुहोस्
- SSH को सार्वजनिक कुञ्जी प्रमाणीकरण प्रयोग गर्नुहोस्
6.3 Windows मा SSH प्रयोग गर्ने विधि के हो?
6.3.1 PowerShell प्रयोग गर्ने
Windows 10 वा त्यसपछिका संस्करणहरूमा, PowerShell मा SSH क्लाइन्ट मानक रूपमा उपलब्ध छ। निम्न कमान्डले जडान गर्न सकिन्छ।ssh प्रयोगकर्ता नाम@सर्वरको 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-server6.4.2 SSH को सेटिङ परिवर्तन
/etc/ssh/sshd_config लाई सम्पादन गर्नुहोस् र निम्न सेटिङलाई सक्रिय गर्नुहोस्।PasswordAuthentication yesWSL ले डिफल्ट रूपमाsystemd प्रयोग गर्दैन, त्यसैले निम्न कमान्डले SSH लाई म्यानुअल रूपमा सुरु गर्नुहोस्।sudo service ssh start6.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 = 3600Fail2Ban लाई पुन: सुरु गरेर सेटिङ लागू गर्नुहोस्।sudo systemctl restart fail2ban6.5.2 SSH पोर्ट परिवर्तन
/etc/ssh/sshd_config खोल्नुहोस् र डिफल्ट22 बाट परिवर्तन गर्नुहोस्।Port 2200सेटिङ पछि, SSH लाई पुन: सुरु गर्नुहोस् र UFW मा नयाँ पोर्टलाई अनुमति दिनुहोस्।sudo ufw allow 2200/tcp6.6 Ubuntu मा SSH को लगहरू रीयलटाइममा कसरी जाँच्ने?
SSH को लगहरूलाई रीयलटाइममा निगरानी गर्नका लागि, निम्न कमान्ड कार्यान्वयन गर्नुहोस्।sudo journalctl -u ssh -fविगतका SSH लगहरू जाँच्नका लागि, निम्न कमान्ड प्रयोग गर्नुहोस्।sudo cat /var/log/auth.log | grep ssh6.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 myserver6.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 मा सुरक्षित रूपमा पहुँच गर्न र सञ्चालन गर्न सकिन्छ। यो लेखमा, […]




