एसएसएच एक नेटवर्क प्रोटोकॉल है जो आपको नेटवर्क पर रिमोट सिस्टम को सुरक्षित रूप से एक्सेस और प्रबंधित करने की अनुमति देता है। SSH के माध्यम से किसी दूरस्थ मशीन से कनेक्ट करते समय, आपको "कनेक्शन अस्वीकृत" त्रुटि का सामना करना पड़ सकता है। इस समस्या का अनुभव करना निराशाजनक हो सकता है, खासकर यदि आप एक सिस्टम एडमिनिस्ट्रेटर हैं और आपको तत्काल आधार पर रिमोट सिस्टम पर कुछ कार्य करने हैं।
आइए एसएसएच "कनेक्शन अस्वीकृत" त्रुटि और इसे हल करने के तरीकों के कुछ संभावित कारणों को देखें।
1. जांचें कि कोई एसएसएच सर्वर स्थापित है या नहीं
"कनेक्शन अस्वीकृत" त्रुटि का एक संभावित कारण यह है कि रिमोट मशीन नहीं चल रही है एक एसएसएच सर्वर. SSH सर्वर के बिना, मशीन आने वाले SSH कनेक्शनों को स्वीकार नहीं करेगी, और आप इसे दूरस्थ रूप से एक्सेस नहीं कर पाएंगे।
इसलिए त्रुटि निवारण में पहला कदम यह जांचना है कि रिमोट मशीन पर SSH सर्वर स्थापित है या नहीं। SSH सर्वर स्थापना को सत्यापित करने के लिए निम्न कमांड का उपयोग करें:
डेबियन-आधारित वितरण पर:
डीपीकेजी --सूची | ग्रेप एसएसएच
आरएचईएल आधारित वितरण पर:
यम सूची स्थापित | ग्रेप एसएसएच
ओपनएसयूएसई पर:
ज़ीपर सर्च -आई | ग्रेप एसएसएच
आर्क-आधारित वितरण पर:
पॅकमैन -क्यू | ग्रेप एसएसएच
यदि SSH सर्वर रिमोट मशीन पर स्थापित है, तो आप इसे आउटपुट में सूचीबद्ध देखेंगे। अन्यथा, आपको अवश्य करना चाहिए दूरस्थ मशीन पर OpenSSH सर्वर स्थापित करें आप SSH के माध्यम से एक्सेस करना चाहते हैं। OpenSSH सिस्टम को दूरस्थ रूप से एक्सेस करने और नियंत्रित करने के लिए SSH टूल का एक ओपन-सोर्स संस्करण है।
OpenSSH सर्वर को स्थापित करने के लिए, निम्नलिखित कमांड का उपयोग करें:
डेबियन-आधारित वितरण पर:
sudo apt ओपनश-सर्वर स्थापित करें
आरएचईएल आधारित वितरण पर:
सुडो यम ओपनश-सर्वर स्थापित करें
ओपनएसयूएसई पर:
sudo zypper ओपनश स्थापित करें
आर्क-आधारित वितरण पर:
पॅकमैन -एस ओपनश
2. SSH सेवा स्थिति की जाँच करें
"कनेक्शन अस्वीकृत" त्रुटि प्राप्त करने का एक अन्य कारण यह हो सकता है कि SSH सेवा अक्षम है या रिमोट मशीन पर नहीं चल रही है। एक बार जब आप सुनिश्चित हो जाते हैं कि एसएसएच सर्वर स्थापित है, तो दूसरी चीज जो आपको जांचने की जरूरत है वह सर्वर की स्थिति है।
sudo systemctl स्थिति sshd
यदि सेवा चल रही है और चल रही है, तो आउटपुट इसे इस रूप में इंगित करेगा सक्रिय (चल रहा है). नहीं तो आपको कुछ ऐसा दिखाई देगा निष्क्रिय (मृत).
यदि SSH सर्वर नहीं चल रहा है, तो आप इसे निम्न आदेश का उपयोग करके मैन्युअल रूप से प्रारंभ कर सकते हैं:
sudo systemctl sshd प्रारंभ करें
आप सेवा को बूट पर स्वचालित रूप से प्रारंभ करने के लिए भी सक्षम कर सकते हैं:
sudo systemctl sshd को सक्षम करें
3. SSH पोर्ट की जाँच करें
डिफ़ॉल्ट रूप से, SSH सर्वर पोर्ट 22 पर चलता है। हालाँकि, कोई डिफ़ॉल्ट पोर्ट को बदल सकता है। इसलिए, यदि आपको SSH "कनेक्शन अस्वीकृत" त्रुटि प्राप्त होती है, तो ऐसा इसलिए हो सकता है क्योंकि आप डिफ़ॉल्ट पोर्ट 22 पर SSH सर्वर से कनेक्ट करने का प्रयास कर रहे हैं जबकि यह कुछ अलग पोर्ट पर चल रहा है।
तुम कर सकते हो नेटस्टैट कमांड का उपयोग करें SSH सर्वर जिस पोर्ट को सुन रहा है उसे खोजने के लिए grep के साथ:
सुडो नेटस्टैट -प्लंटु | ग्रेप एसएसएच
आप SSH पोर्ट को से भी खोज सकते हैं sshd_config निम्नलिखित कमांड का उपयोग करके फाइल करें:
ग्रेप पोर्ट /etc/ssh/sshd_config
सही SSH पोर्ट की पहचान करने के बाद, उस विशिष्ट पोर्ट का उपयोग करके अपने रिमोट सिस्टम से कनेक्ट करने का प्रयास करें।
4. अपने सिस्टम फ़ायरवॉल की जाँच करें
आपकी मशीन के फ़ायरवॉल द्वारा कुछ पोर्ट या सेवाओं को अवरुद्ध करने के कारण अधिकांश कनेक्टिविटी समस्याएँ उत्पन्न होती हैं। यदि रिमोट मशीन में SSH सर्वर स्थापित और चल रहा है, तो अगला चरण आपके फ़ायरवॉल की जाँच करना है।
यह पता लगाने के लिए कि फ़ायरवॉल कनेक्शन को अवरुद्ध कर रहा है या नहीं, निम्न आदेशों का उपयोग करके फ़ायरवॉल को अस्थायी रूप से अक्षम करें:
डेबियन और आर्क-आधारित लिनक्स वितरण पर:
सुडो ufw अक्षम करें
आरएचईएल-आधारित वितरण और ओपनएसयूएसई पर:
sudo systemctl फ़ायरवॉल को अक्षम करें
यदि फ़ायरवॉल को अक्षम करने के बाद त्रुटि प्रकट नहीं होती है, तो इसका मतलब है कि फ़ायरवॉल कनेक्शन को ब्लॉक कर रहा था। इस स्थिति में, फ़ायरवॉल को पुन: सक्षम करें और एक नियम जोड़ें जो SSH को अनुमति देता है।
डेबियन और आर्क-आधारित लिनक्स वितरण पर, एसएसएच को अनुमति देने के लिए निम्न आदेश का उपयोग करें UFW फ़ायरवॉल:
sudo ufw ssh को अनुमति दें
वैकल्पिक रूप से, आप फ़ायरवॉल में पोर्ट नंबर द्वारा SSH को भी अनुमति दे सकते हैं। मान लें कि SSH सर्वर पोर्ट 5555 का उपयोग कर रहा है, तो आप इसे फ़ायरवॉल में अनुमति देने के लिए निम्न आदेश का उपयोग करेंगे:
सुडो ufw 5555 की अनुमति दें
यह सत्यापित करने के लिए कि क्या नियम सफलतापूर्वक जोड़ा गया है, UFW स्थिति की जाँच करें:
सुडो ufw स्थिति
आरएचईएल-आधारित वितरण और ओपनएसयूएसई पर, एसएसएच को फ़ायरवॉल में अनुमति देने के लिए निम्न आदेश का उपयोग करें:
sudo फ़ायरवॉल-cmd --permanent --add-service=ssh
SSH को पोर्ट नंबर द्वारा अनुमति देने के लिए, निम्न कमांड का उपयोग करें:
sudo फ़ायरवॉल-cmd --permanent --add-port={port}/tcp
पोर्ट 4444 पर चलने वाले SSH सर्वर के लिए, कमांड होगी:
सुडो फ़ायरवॉल-cmd --permanent --add-port=4444/tcp
फ़ायरवॉल में नियम के सफल जोड़ को सत्यापित करने के लिए, चलाएँ:
सूडो फ़ायरवॉल-cmd --list-all
5. आईपी एड्रेस संघर्षों को हल करें
SSH सर्वर IP के नेटवर्क में किसी अन्य सिस्टम के IP के साथ परस्पर विरोधी होने के कारण SSH "कनेक्शन अस्वीकृत" त्रुटि होने की भी संभावना है। ऐसा तब होता है जब नेटवर्क पर दो सिस्टम एक ही आईपी एड्रेस होने का दावा करते हैं, जिसके परिणामस्वरूप एक आईपी संघर्ष.
यह पुष्टि करने के लिए कि क्या आपके नेटवर्क में कोई IP विरोध है, arp-scan टूल का उपयोग इस प्रकार करें:
एआरपी-स्कैन [नेटवर्क-आईडी]
यदि कोई IP विरोध है, तो आप आउटपुट में डुप्लिकेट IP पता देखेंगे। नीचे दिया गया स्क्रीनशॉट एक नेटवर्क में IP विरोध का एक उदाहरण है:
IP विरोधों से बचने के लिए, सुनिश्चित करें कि किसी भी डिवाइस में स्थिर IP पते नहीं हैं जो DHCP पूल पतों के साथ ओवरलैप करते हैं।
बोनस युक्ति: वर्बोज़ मोड में SSH चलाएँ
जब भी आप किसी SSH त्रुटि का सामना करते हैं, तो समस्या को ट्रैक करने के लिए ssh कमांड को वर्बोज़ मोड में चलाने का प्रयास करें। SSH को वर्बोज़ मोड में चलाने के लिए, ssh कमांड का उपयोग करें -vvv विकल्प इस प्रकार है:
ssh -vvv उपयोगकर्ता नाम@ip_address
वर्बोज़ मोड में, आप कनेक्शन के प्रत्येक चरण में डिबगिंग संदेश देखेंगे जो आपको यह समझने में मदद करेगा कि समस्या कहाँ है।
Linux पर SSH "कनेक्शन अस्वीकृत" त्रुटि का निवारण
SSH कनेक्टिविटी त्रुटि के संभावित कारणों की पहचान करके और सुझाए गए समाधानों को लागू करके, आप SSH "कनेक्शन अस्वीकृत" त्रुटि का निवारण और समाधान करने में सक्षम होंगे। इन चरणों के अलावा, सुनिश्चित करें कि आप सही आईपी पते से जुड़ रहे हैं और सही लॉगिन क्रेडेंशियल का उपयोग कर रहे हैं।
अपने दूरस्थ कनेक्शन को अधिक सुरक्षित बनाने के लिए, आप Linux पर SSH के लिए दो-कारक प्रमाणीकरण सेट अप कर सकते हैं।