Ubuntu मा SSH प्रयोग! कनेक्सन, पोर्ट परिवर्तन र सार्वजनिक कुञ्जी प्रमाणीकरण सेटिङ गाइड

目次

1. परिचय

Ubuntu मा SSH प्रयोग गरेर, रिमोटबाट सर्वर वा PC मा सुरक्षित रूपमा पहुँच गर्न र सञ्चालन गर्न सकिन्छ। यो लेखमा, SSH को अवलोकनबाट, Ubuntu मा SSH सर्वरको स्थापना, सुरक्षा उपायहरू, समस्या निवारण सम्म, शुरुआतीहरूले पनि बुझ्न सक्ने गरी विस्तृत रूपमा व्याख्या गरिएको छ।

SSH भनेको के हो?

SSH (Secure Shell) नेटवर्क मार्फत सुरक्षित रूपमा रिमोट कम्प्युटरमा जडान गर्नका लागि प्रोटोकल हो। पुरानो Telnet वा FTP भन्दा फरक, डाटा एन्क्रिप्टेड हुने भएकाले, चोरी सुन्ने वा परिवर्तन गर्ने जोखिमलाई धेरै कम गर्न सकिन्छ।

Ubuntu मा SSH को मुख्य प्रयोगहरू

Ubuntu मा SSH प्रयोग गर्ने मुख्य अवस्थाहरू निम्नानुसार छन्।
  • रिमोट सर्वर व्यवस्थापन: Ubuntu सर्वरलाई टाढाबाट सञ्चालन
  • फाइल स्थानान्तरण: SCP वा SFTP प्रयोग गरेर सुरक्षित फाइल आदानप्रदान
  • पोर्ट फर्वार्डिङ: सुरक्षालाई मजबुत बनाएको रिमोट जडान

यो लेखबाट सिक्न सकिने कुराहरू

  • SSH को आधारभूत अवधारणा र संरचना
  • Ubuntu मा SSH सर्वरको स्थापना विधि
  • SSH जडानको सेटिङ र समस्या निवारण
  • SSH को सुरक्षा उपायहरू

२. SSH को आधारभूत अवधारणा

SSH लाई प्रभावकारी रूपमा उपयोग गर्नको लागि, यसको आधारभूत अवधारणालाई बुझ्नु महत्वपूर्ण छ। यस अध्यायमा, SSH को संयन्त्र र प्रमाणीकरण विधिहरूको भिन्नताहरू बारे व्याख्या गरिन्छ।

SSH को संयन्त्र

SSH क्लाइन्ट र सर्भर बीच सुरक्षित कनेक्सन स्थापित गर्ने प्रोटोकल हो। डिफल्ट रूपमा, TCP को २२ नम्बर पोर्ट प्रयोग गर्दछ र एन्क्रिप्टेड सञ्चार गर्दछ।मुख्य कार्यहरू
  • दूरस्थ लगइन: सर्भरमा कमान्डहरू निष्पादन गर्नु
  • फाइल स्थानान्तरण: 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 सेवालाई म्यानुअल रूपमा सुरु वा बन्द गर्न निम्न कमान्डहरू प्रयोग गर्नुहोस्।
# SSH लाई सुरु गर्नुहोस्
sudo systemctl start ssh

# SSH लाई सक्षम गर्नुहोस् (पुनरारम्भ पछि पनि स्वत: सुरु)
sudo systemctl enable ssh

# SSH लाई रोक्नुहोस्
sudo systemctl stop ssh

UFW (Uncomplicated Firewall) को सेटिङ

पूर्वनिर्धारित रूपमा, यदि UFW सक्रिय छ भने SSH जडान अवरुद्ध हुन सक्छ। निम्न कमान्डहरूबाट SSH पोर्ट (२२) लाई अनुमति दिनुहोस्।
sudo ufw allow ssh
sudo ufw enable

४. 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
निम्न वस्तुहरू जाँच र सम्पादन गर्नुहोस्।
# पासवर्ड प्रमाणीकरणलाई निष्क्रिय गर्नुहोस् (सार्वजनिक कुञ्जी प्रमाणीकरण मात्र)
PasswordAuthentication no

# रुट लगइन निषेध
PermitRootLogin no

# प्रयोग गर्ने पोर्ट परिवर्तन (उदाहरण: २२२२)
Port 2222
सेटिङ परिवर्तन गरेपछि, SSH सेवालाई पुन: आरम्भ गर्नुहोस्।
sudo systemctl restart ssh

५. SSH जडानको निष्पादन

Ubuntu मा SSH सर्वर सेटअप गरेपछि, क्लाइन्टबाट वास्तविक रूपमा जडान गर्न आवश्यक छ। यस अध्यायमा, आधारभूत SSH जडान विधि र पोर्ट परिवर्तन गर्दा जडान विधिबारे व्याख्या गरिन्छ।

आधारभूत SSH जडान कमान्ड

सर्वरमा जडान गर्न SSH क्लाइन्ट प्रयोग गर्दा, निम्न कमान्ड प्रयोग गर्नुहोस्।
ssh username@server IP address
उदाहरणका लागि, सर्वरको IP ठेगाना 192.168.1.10 र प्रयोगकर्ता नाम ubuntu भएको अवस्थामा, निम्नानुसार 입력 गर्नुहोस्।
ssh ubuntu@192.168.1.10
पहिलो पटक जडान गर्दा, सर्वरको फिंगरप्रिन्ट देखाइने भएकाले, “yes” भर्नुहोस् र जडान स्वीकृत गर्नुहोस्।

पोर्ट नम्बर परिवर्तन गरेमा जडान

डिफल्ट २२ नम्बर पोर्ट होइन, उदाहरणका लागि “२२२२” मा परिवर्तन गरेमा, निम्नानुसार -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 प्रयोग गरेर, स्थानीय PC र रिमोट सर्वरबीच फाइल स्थानान्तरण गर्न सकिन्छ।स्थानीय → रिमोट
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        # file list
cd        # directory change
put filename   # upload from local to remote
get filename   # download from remote to local
exit      # end 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 <पोर्ट_नम्बर> कार्यान्वयन गर्नुहोस्)
  • UFW लाई पुन: सुरु गर्नुहोस्।
  sudo ufw reload

3. पोर्ट नम्बर परिवर्तन गरिएको छ

डिफल्ट 22 पोर्टको सट्टा कस्टम पोर्ट प्रयोग गरिएको छ भने, जडान गर्दा उपयुक्त पोर्ट निर्दिष्ट गर्न आवश्यक छ।समाधान:
  • सर्वर पक्षमा प्रयोग भएको पोर्ट जाँच गर्नुहोस्।
  sudo grep Port /etc/ssh/sshd_config
  • क्लाइन्ट पक्षमा उपयुक्त पोर्ट निर्दिष्ट गरेर जडान गर्नुहोस्।
  ssh -p 2222 प्रयोगकर्ता_नाम@सर्वरको_IP_ठेगाना

4. SSH कुञ्जीको अनुमतिहरू सही छैनन्

प्रकाशित कुञ्जी प्रमाणीकरण प्रयोग गरिएको छ भने, कुञ्जी फाइलको अनुमतिहरू उपयुक्त नभए जडान हुन सक्दैन।समाधान:
  • गोप्य कुञ्जीको अनुमतिहरू उपयुक्त रूपमा सेट गर्नुहोस्।
  chmod 600 ~/.ssh/id_rsa
  • प्रकाशित कुञ्जीको अनुमतिहरू उपयुक्त रूपमा सेट गर्नुहोस्।
  chmod 644 ~/.ssh/authorized_keys

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

सर्वरको SSH होस्ट कुञ्जी परिवर्तन भएको छ भने, क्लाइन्ट पक्षमा “WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!” जस्तो त्रुटि उत्पन्न हुन सक्छ।समाधान:
  • पुरानो होस्ट कुञ्जीलाई हटाउनुहोस्।
  ssh-keygen -R <सर्वरको_IP_ठेगाना>
  • फेरि SSH जडान प्रयास गर्नुहोस्।
  ssh प्रयोगकर्ता_नाम@सर्वरको_IP_ठेगाना

6. SSH लगहरूको जाँच

SSH को विस्तृत त्रुटि सन्देशहरू जाँच गर्न सर्वर पक्षको लगहरू हेर्नुहोस्।
sudo journalctl -u ssh --no-pager | tail -n 20
यसैगरी, रीयलटाइममा लगहरू जाँच गर्न निम्न कमान्ड कार्यान्वयन गर्नुहोस्।
sudo tail -f /var/log/auth.log

7. जडानले समय समाप्त गर्दा

SSH जडान ढिलो छ वा बीचमा विच्छेद हुन्छ भने, निम्न बिन्दुहरू जाँच गर्नुहोस्।समाधान:
  • KeepAlive लाई सक्रिय गर्नुहोस् क्लाइन्टको ~/.ssh/config मा निम्न थप्नुहोस्।
  Host *
      ServerAliveInterval 60
  • सर्वर पक्षमा समय समाप्त सेटिङ समायोजन गर्नुहोस् /etc/ssh/sshd_config मा निम्न थपेर, SSH सेवालाई पुन: सुरु गर्नुहोस्।
  ClientAliveInterval 60
  ClientAliveCountMax 3
  sudo systemctl restart ssh

सारांश

SSH जडानका समस्याहरू विभिन्न कारणहरूले उत्पन्न हुन्छन्, तर धेरै अवस्थामा निम्न जाँच बिन्दुहरूबाट समाधान गर्न सकिन्छ। ✅SSH सेवा सुरु भएको छ कि जाँच गर्नुहोस्फायरवालले अवरोध गरेको छैन कि जाँच गर्नुहोस्पोर्ट सेटिङ सही छ कि जाँच गर्नुहोस्SSH कुञ्जीको अनुमतिहरू उपयुक्त छन् कि जाँच गर्नुहोस्त्रुटि सन्देशहरूलाई लगहरूमा जाँच गर्नुहोस्

7. SSH को सुरक्षा सुदृढीकरण

SSH एक शक्तिशाली रिमोट पहुँच उपकरण हो, तर उपयुक्त सुरक्षा उपायहरू नगरेमा, अनधिकृत पहुँच वा ब्रुट फोर्स आक्रमणको लक्ष्य बन्न सक्छ। यस अध्यायमा, SSH को सुरक्षालाई बढाउनका लागि सिफारिस गरिएका सेटिङहरूको व्याख्या गरिन्छ।

1. पासवर्ड प्रमाणीकरणलाई असक्षम बनाउने र सार्वजनिक कुञ्जी प्रमाणीकरणको सिफारिस

डिफल्ट रूपमा, SSH ले पासवर्ड प्रमाणीकरणलाई अनुमति दिन्छ, तर यो ब्रुट फोर्स आक्रमणको जोखिम बढाउँछ। SSH को सार्वजनिक कुञ्जी प्रमाणीकरणलाई सक्रिय गर्दै पासवर्ड प्रमाणीकरणलाई असक्षम बनाएर सुरक्षालाई सुदृढ गर्न सकिन्छ।

प्रक्रिया

  1. sshd_config लाई सम्पादन गर्ने
   sudo nano /etc/ssh/sshd_config
  1. निम्न सेटिङहरूलाई परिवर्तन गर्ने (वा थप्ने)
   PasswordAuthentication no
   PubkeyAuthentication yes
  1. SSH सेवालाई पुन: सुरु गर्ने
   sudo systemctl restart ssh
यो सेटिङबाट, SSH ले सार्वजनिक कुञ्जी प्रमाणीकरण मात्र स्वीकार गर्न थाल्छ। पहिले नै सार्वजनिक कुञ्जीको सेटिङ पूरा गरेपछि मात्र लागू गर्नुहोस्।

2. SSH को पोर्ट नम्बर परिवर्तन गर्ने

SSH को डिफल्ट पोर्ट (२२ नम्बर) लाई यथावत् राख्दा, आक्रमणकारीहरूको निशानामा पर्न सजिलो हुन्छ। सुरक्षालाई सुधार्नका लागि, पोर्ट नम्बर परिवर्तन गर्न सिफारिस गरिन्छ।

प्रक्रिया

  1. sshd_config लाई खोल्ने
   sudo nano /etc/ssh/sshd_config
  1. निम्नानुसार परिवर्तन गर्ने (उदाहरण: २२२२ मा परिवर्तन)
   Port 2222
  1. नयाँ पोर्टलाई फायरवालमा अनुमति दिने
   sudo ufw allow 2222/tcp
  1. SSH सेवालाई पुन: सुरु गर्ने
   sudo systemctl restart ssh
  1. नयाँ पोर्टमा कनेक्सन परीक्षण गर्ने
   ssh -p 2222 प्रयोगकर्ता_नाम@सर्भरको_IP_ठेगाना

3. रुट प्रयोगकर्ताको SSH लगइनलाई निषेध गर्ने

डिफल्ट रूपमा, रुट प्रयोगकर्ताले 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 लाई स्थापना गर्ने
   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 जडान गर्दा “जडान अस्वीकार गरियो” देखाउने कारण के हो?

SSH सर्वरमा जडान अस्वीकार हुने कारणहरू धेरै हुन सक्छन्।मुख्य कारणहरू र उपायहरू
  1. SSH सेवा सुरु भएको छैन
   sudo systemctl status ssh
उपाय: सेवा रोकेको छ भने सुरु गर्नुहोस्।
   sudo systemctl start ssh
  1. फायरवाल (UFW) ले ब्लक गरिरहेको छ
   sudo ufw allow ssh
   sudo ufw enable
  1. पोर्ट नम्बर परिवर्तन SSH को पोर्ट नम्बर डिफल्ट (22) बाहेक परिवर्तन गरेको छ भने, सही पोर्ट निर्दिष्ट गर्नुहोस्।
   ssh -p 2222 username@server_IP_address

Q2: SSH को डिफल्ट पोर्ट परिवर्तन गर्ने विधि के हो?

डिफल्ट 22 नम्बर पोर्ट आक्रमणको लक्ष्य बन्न सजिलो हुने भएकाले, परिवर्तन गर्दा सुरक्षित हुन्छ।चरणहरू
  1. सेटिङ फाइल सम्पादन गर्नुहोस्
   sudo nano /etc/ssh/sshd_config
  1. Port को मान परिवर्तन गर्नुहोस् (उदाहरण: 2222)
   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: निश्चित IP ठेगानाबाट मात्र SSH जडान अनुमति दिन कसरी गर्ने?

SSH लाई निश्चित IP ठेगानाबाट मात्र अनुमति दिएर सुरक्षालाई मजबुत बनाउन सकिन्छ।विधि 1: sshd_config को सम्पादन
  1. सेटिङ फाइल खोल्नुहोस्
   sudo nano /etc/ssh/sshd_config
  1. AllowUsers मा अनुमति दिने IP ठेगाना थप्नुहोस्
   AllowUsers username@192.168.1.100
  1. SSH सेवालाई पुन: सुरु गर्नुहोस्
   sudo systemctl restart ssh
विधि 2: फायरवाल (UFW) को सेटिङ
  1. SSH जडान अनुमति दिने IP ठेगाना निर्दिष्ट गर्नुहोस्
   sudo ufw allow from 192.168.1.100 to any port 22
  1. अन्य SSH जडानहरूलाई ब्लक गर्नुहोस्
   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

सारांश

यो अध्यायमा, SSH सम्बन्धी सामान्य प्रश्नहरू र तिनको समाधान विधिहरू प्रस्तुत गरियो। समस्या उत्पन्न भएमा, लग फाइल जाँच गर्दै कारण पहिचान गर्नु महत्वपूर्ण छ। ✅SSH जडान अस्वीकार भएमा उपचार विधिडिफल्ट पोर्ट परिवर्तन र उपयुक्त जडान विधिसार्वजनिक कुञ्जी प्रमाणीकरण काम नगरेमा जाँच सूचीनिश्चित IP ठेगानाबाट मात्र SSH जडान अनुमति दिने विधिSSH को समयसीमालाई रोक्ने सेटिङ

9. सारांश

यो लेखमा, Ubuntu मा SSH को सेटिङ र प्रयोग विधि बारे, आधारभूत देखि प्रगत सम्म विस्तृत व्याख्या गरिएको छ। यहाँ, महत्वपूर्ण बुँदाहरूको समीक्षा गर्दै, थप सिकाइ गहिरो बनाउनका लागि स्रोतहरू प्रस्तुत गर्दछु।

यो लेखका मुख्य बुँदाहरूको सारांश

1. SSH को आधारभूत र संरचना

  • SSH ले सुरक्षित रूपमा रिमोट कनेक्सन गर्नका लागि प्रोटोकल हो।
  • डाटा इन्क्रिप्टेड हुने भएकाले, Telnet वा FTP भन्दा सुरक्षित छ।
  • प्रमाणीकरण विधिहरूमा पासवर्ड प्रमाणीकरणप्रकाशित कुञ्जी प्रमाणीकरण छन्।

2. Ubuntu मा SSH सर्भरको स्थापना

  • OpenSSH लाई sudo apt install openssh-server द्वारा स्थापना गर्नुहोस्।
  • systemctl status ssh द्वारा सेवाको अवस्था जाँच्नुहोस्।
  • UFW (फायरवाल) मा sudo ufw allow ssh चलाएर पहुँच अनुमति दिनुहोस्।

3. SSH कनेक्सनको सेटिङ

  • ssh प्रयोगकर्ता नाम@सर्भरको IP ठेगाना द्वारा रिमोट कनेक्सन गर्नुहोस्।
  • प्रकाशित कुञ्जी प्रमाणीकरण प्रयोग गर्दा, सुरक्षा बढ्छ।
  • sshd_config को सेटिङमा, पासवर्ड प्रमाणीकरण असक्षम गर्न सकिन्छ।

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

  • सेवा चलिरहेको छ कि जाँच्नुहोस् (systemctl status ssh)।
  • पोर्ट नम्बर परिवर्तन गर्दा ssh -p 2222 प्रयोगकर्ता नाम@IP द्वारा कनेक्ट गर्नुहोस्।
  • ~/.ssh/authorized_keys को अनुमति सेटिङलाई उपयुक्त रूपमा समायोजन गर्नुहोस्।

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

  • पासवर्ड प्रमाणीकरण असक्षम गर्नुहोस् र प्रकाशित कुञ्जी प्रमाणीकरण प्रयोग गर्नुहोस्।
  • SSH पोर्ट नम्बर परिवर्तन गर्नुहोस् (उदाहरण: 2222)।
  • Fail2Ban लागू गर्नुहोस् र ब्रुट फोर्स आक्रमण रोक्नुहोस्।
  • केवल विशिष्ट IP ठेगानाहरू मात्र अनुमति दिनुहोस् र अनधिकृत पहुँच सीमित गर्नुहोस्।

6. FAQ मा समाधान गरिएका मुख्य शंकाहरू

  • «SSH कनेक्सन अस्वीकार हुन्छ» → सर्भरको सुरु अवस्था वा UFW को सेटिङ जाँच्नुहोस्।
  • «प्रकाशित कुञ्जी प्रमाणीकरण काम गर्दैन» → कुञ्जीको अनुमति वा sshd_config जाँच्नुहोस्।
  • «SSH को समय समाप्त हुनबाट रोक्नु» → ClientAliveInterval को सेटिङ परिवर्तन गर्नुहोस्।

थप सिकाइका लागि स्रोतहरू

SSH को सेटिङलाई थप गहिरो रूपमा बुझ्नका लागि, निम्न स्रोतहरू प्रयोग गर्नुहोस्। 📚आधिकारिक कागजात 🛠सम्बन्धित उपकरणहरू 🎥सिफारिस गरिएका भिडियोहरू
  • YouTube मा «Ubuntu SSH सेटिङ» आदि खोज्दा, शुरुआतीहरूका लागि व्याख्या भिडियोहरू धेरै छन्।

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

अर्को चरण

यो लेख पढेर SSH को आधारभूत बुझ्नुभयो भने, निम्न जस्ता प्रगत कौशलहरू सिक्नु सिफारिस गरिन्छ। ✅Ansible प्रयोग गरेर SSH को स्वचालित व्यवस्थापन
  • सर्भरहरू धेरै भएमा, SSH प्रयोग गरेर Ansible ले रिमोट व्यवस्थापनलाई स्वचालित गर्न सकिन्छ।
SSH टनलिङ र पोर्ट फर्वार्डिङ
  • SSH प्रयोग गरेर सुरक्षित रूपमा रिमोट डेस्कटप कनेक्सन स्थापित गर्न सकिन्छ वा VPN जस्तै प्रयोग गर्न सकिन्छ।
SSH लग निगरानी र सुरक्षा मजबुत
  • fail2ban वा logwatch प्रयोग गरेर, अनधिकृत पहुँचलाई रीयलटाइममा निगरानी गर्ने विधि सिक्नुहोस्।

सारांश

यो लेख अन्तिमसम्म पढ्नुभएकोमा धन्यवाद! 🎉 Ubuntu मा SSH लाई उपयुक्त रूपमा सेटिङ गरेर, रिमोट व्यवस्थापनको दक्षता र सुरक्षालाई ठूलो मात्रामा बढाउन सकिन्छ। «SSH प्रयोग गरेका सुविधाजनक प्रगत प्रविधिहरू» वा «सर्भर सुरक्षाको थप मजबुत» आदि, गहिरो विषयहरूमा पनि, भविष्यको सिकाइमा कृपया उपयोग गर्नुहोस्! त्यसपछि, आरामदायी SSH जीवनको लागि! 🖥️🔐

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

सम्बन्धित

1. परिचय Ubuntu मा SSH सेटअप गर्नु रिमोट सर्भरको व्यवस्थापनका लागि अत्यन्त महत्वपूर्ण छ। SSH (Secure Shell) ले सुरक्षित[…]

侍エンジニア塾