SSH सर्वर कनेक्शन अनुरोधों का जवाब नहीं दे रहा है


14

मैं ओपनएसएसएच का उपयोग करके अपने स्थानीय मशीन पर एक एसएसएच सर्वर स्थापित करने का प्रयास कर रहा हूं। जब मैं अपने स्थानीय SSH सर्वर में दूरस्थ होस्ट से SSH की कोशिश करता हूं, तो SSH सर्वर प्रतिक्रिया नहीं देता है और अनुरोध समय पर नहीं होता है। मुझे पूरा यकीन है कि इसके लिए वास्तव में स्पष्ट समाधान है कि मैं बस अनदेखी कर रहा हूं।

जब मैं दूरस्थ होस्ट से SSH के लिए प्रयास करता हूं तो यह होता है:

yoshimi@robots:/$ ssh -vv volt@99.3.26.94
OpenSSH_6.7p1 Debian-5, OpenSSL 1.0.1k 8 Jan 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 99.3.26.94 [99.3.26.94] port 22.
debug2: fd 3 setting O_NONBLOCK
debug1: connect to address 99.3.26.94 port 22: Connection timed out
ssh: connect to host 99.3.26.94 port 22: Connection timed out

robotsमेरा दूरस्थ होस्ट कहां है, और 99.3.26.94मेरा स्थानीय SSH सर्वर है।

SSH चल रहा है

volt@arnold:~$ ps -A | grep sshd
 5784 ?        00:00:00 sshd

arnoldमेरा स्थानीय SSH सर्वर कहां है।

पोर्ट अग्रेषण राउटर पर सेट किया गया है

मैंने अपने होम राउटर को अपने SSH सर्वर पर पोर्ट 80 और 22 को फॉरवर्ड कर दिया है। दिलचस्प बात यह है कि पोर्ट 80 बिना किसी अड़चन के काम करता है - सीधे अपाचे वेब निर्देशिका में जाता है। पोर्ट 22 - इतना नहीं।

NMap कहते हैं कि यह फ़िल्टर्ड है

yoshimi@robots:/$ nmap -p 22 99.3.26.94

Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-02 14:45 EDT
Nmap scan report for 99-3-26-94.lightspeed.bcvloh.sbcglobal.net (99.3.26.94)
Host is up (0.33s latency).
PORT   STATE    SERVICE
22/tcp filtered ssh

Nmap done: 1 IP address (1 host up) scanned in 7.59 seconds

robotsमेरा दूरस्थ होस्ट कहां है, और 99.3.26.94मेरा स्थानीय SSH सर्वर है।

यह IPTables नहीं है (मुझे लगता है)

volt@arnold:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
fail2ban-ssh  tcp  --  anywhere             anywhere             multiport dports ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain fail2ban-ssh (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere            

... और मेरे पास कोई अन्य फायरवॉल नहीं है - यह अपेक्षाकृत ताजा डेबियन नेटस्टीन है।

तो, फिर: यह और क्या हो सकता है? यह निश्चित रूप से यातायात को अनदेखा करने के लिए फ़ायरवॉल-वाई तरह की बात प्रतीत होती है, लेकिन अगर यह राउटर नहीं है, तो यह iptables नहीं है, और यह SSH सर्वर पर एक और फ़ायरवॉल नहीं है, ... और क्या है?

EDIT: आंतरिक नेटवर्क त्रुटि से कनेक्शन अनुरोध

yoshimi@robots:/$ ssh volt@192.168.1.90
ssh: connect to host 192.168.1.90 port 22: No route to host

1
क्या आपने राउटर के पीछे (आंतरिक रूप से) कंप्यूटर से SSH'ing की कोशिश की है? इसके अलावा, देखना यह
सियारकोट

संदर्भ सामग्री के लिए धन्यवाद, @ saiarcot895 इसके अलावा, देखें संपादित करें।
किटीकिटीबैंगबैंग

यह उस कंप्यूटर का आईपी पता क्या है जिसे आपने ऊपर ^ के साथ करने की कोशिश की थी? क्या आप इसे पिंग कर सकते हैं?
111 ---

सबसे पहले यह देखें कि अगर कुछ पता नहीं चल रहा है तो arping remotehostकेवल एक hw पते का जवाब देना चाहिए, तो जाँच करें कि क्या hwaddress समान है। फिर चेक रिज़ॉल्यूशन के साथ dig remotehostऔर dig -x remoteip, फिर जांचें कि क्या दूरस्थ होस्ट 127.0.0.1 को इंगित नहीं कर रहा है, इस जाँच के लिए / etc / दूरदराज के मेजबान। और अंत में फ़ायरवॉल को अक्षम करने का प्रयास करें, और जांचें कि क्या ssh प्रक्रिया चल रही है।
इलाबरना

यह tail -fलॉग फ़ाइल (ओं) को भी देखने में मदद कर सकता है जिसे आपने sshd आउटपुट के लिए इंगित किया है। अगर लॉग में कुछ भी नहीं है, तो यह दो डिवाइसों के बीच एक समस्या है, ssh सर्वर पर नहीं।
0xSheepdog

जवाबों:


18

एक बहुत निराशाजनक स्व-उत्तर

इस समस्या को एक दिन के लिए अलग रख दिया और वापस आ गया, मैं दोनों को राहत मिली और हैरान रह गई (राहत से ज्यादा परेशान) यह खोजने के लिए कि सब कुछ, रहस्यमय तरीके से, ठीक से काम कर रहा था।

तो, मुद्दा क्या था?

कोई सेटिंग परिवर्तित या समायोजित नहीं की गई थी - राउटर पर नहीं, SSH सर्वर पर नहीं, और SSH क्लाइंट की मशीन पर नहीं। यह कहना काफी सुरक्षित है कि राउटर उचित सेटिंग्स के बावजूद, आने वाले ट्रैफिक को ठीक से नहीं संभाल रहा था। यह देखते हुए कि डंकी होम राउटर सॉफ्टवेयर वास्तव में पोर्ट फॉरवर्डिंग से निपटने के लिए डिज़ाइन नहीं किया गया है, आवश्यक बदलावों को लागू करने में गरीब आदमी को थोड़ी देर लगी।

लेकिन यह 6 घंटे की तरह हो गया है !!

हाँ यार, मुझे पता है। मैंने सारा दिन यह जानने में बिताया कि क्या गलत था - और यह कभी नहीं पाया क्योंकि कुछ भी गलत नहीं था । जाहिर तौर पर, राउटर सेटिंग्स को प्रभावी होने में 6 घंटे - संभवतः अधिक - लग सकते हैं।

तो मुझे कैसे पता चलेगा कि यह मेरा मुद्दा है?

इस पलायन के दौरान मैं आया एक निफ्टी उपकरण है tcpdump। यह दुबला छोटा आदमी आपके लिए ट्रैफ़िक को सूँघता है, जो वास्तव में चल रहा है, उसमें मूल्यवान अंतर्दृष्टि प्रदान करता है। इसके अलावा, उन्हें कुछ सुपर फ़िल्टरिंग सुविधाएँ मिली हैं, जो आपको ठीक उसी तरह से संकीर्ण करने की अनुमति देती हैं, जैसा आप देखना चाहते हैं। उदाहरण के लिए, कमांड:

tcpdump -i wlan1 port 22 -n -Q inout

tcpdumpWlan1 इंटरफ़ेस ( -i= 'इंटरफ़ेस') के माध्यम से ट्रैफ़िक देखने के लिए कहता है , केवल पोर्ट 22 के माध्यम से, DNS नाम रिज़ॉल्यूशन ( -n= 'नो नेम रिज़ॉल्यूशन') को अनदेखा करें , और हम इनकमिंग और आउटगोइंग ट्रैफ़िक ( या -Qस्वीकार in) out, या दोनों को देखना चाहते हैं inout; inoutडिफ़ॉल्ट है)।

दूरस्थ मशीन के माध्यम से कनेक्ट करने का प्रयास करते समय अपने SSH सर्वर पर इस कमांड को चलाने से, यह जल्दी से स्पष्ट हो जाता है कि समस्या कहां है। अनिवार्य रूप से, 3 संभावनाएं हैं:

  1. यदि आप रिमोट मशीन से आने वाले ट्रैफ़िक को देख रहे हैं , लेकिन आपके स्थानीय सर्वर से कोई आउटगोइंग ट्रैफ़िक नहीं है, तो समस्या सर्वर के साथ है: शायद एक फ़ायरवॉल नियम है जिसे बदलने की आवश्यकता है, आदि।
  2. यदि आप इनकमिंग और आउटगोइंग दोनों देख रहे हैं , लेकिन आपकी रिमोट मशीन को प्रतिक्रिया नहीं मिल रही है, तो यह सबसे अधिक संभावना है कि राउटर: यह आने वाले ट्रैफ़िक की अनुमति दे रहा है, लेकिन आपके आउटगोइंग पैकेट को छोड़ रहा है।
  3. यदि वहाँ बिल्कुल भी ट्रैफ़िक नहीं है , तो संभवत: यह एक राउटर का मुद्दा है: रिमोट मशीन के SYNपैकेटों को अनदेखा किया जा रहा है और राउटर द्वारा गिरा दिया जाता है, इससे पहले कि वे आपके सर्वर तक पहुंचते हैं।

और एक बार जब आप पता लगा लेते हैं कि समस्या कहाँ है, तो एक समाधान (आमतौर पर) तुच्छ है।


1
आपके "निराशाजनक उत्तर" के लिए बहुत बढ़िया सॉस! आपके उपयोगकर्ता नाम के लिए बोनस अंक .... मैं एक ही स्थानीय नेटवर्क पर दो मशीनों के लिए इस पर मंडलियों में जा रहा हूं! ईविल बेल राउटर बकवास है! यह मुझे केवल ONCE कनेक्ट करने की अनुमति देता है। फिर बाद में, जब मैंने इसे फिर से जोड़ने की कोशिश की तो मुझे मार्ग देने से मना कर दिया! मैं भी ठीक तरह से अन्य रास्ता SSH कर सकते हैं। कम से कम एक बार। मुझे आश्चर्य है कि अगर यह कुछ घंटों में भी काम नहीं करेगा ..
रिचर्ड कुक

वाह, इस पर एक पूरे दिन के लिए मेरे बाल खींच रहा है - लगता है जैसे मैं 'ईविल बेल राउटर' समस्या है। @ रिचर्डच्यूकी: आपका समाधान क्या था?
जॉन डो

@ जॉनडे: बदला हुआ राउटर। एक Asus मॉडल जो DD-WRT अनुमोदित हार्डवेयर सूची में है। किसी भी अधिक shenanigans और मैं डीडी-WRT स्थापित करूँगा!
रिचर्ड कुक

3

मैं मिंट (उबंटू) चला रहा हूं।

मैंने सब कुछ किया है ... अधिकृत_की, चामोडडिंग, चाउनिंग, एसश और एसशीडी को पुनः आरंभ करने आदि में सार्वजनिक कुंजी सही है। जैसा कि सभी जगह पर दस्तावेज किया गया है।

मेरे लिए, यह ufw फ़ायरवॉल था। सभी पर किसी भी ssh प्रतिक्रिया की कमी ने मुझे इस पर इत्तला दे दी, फिर भी मैं लैन पर दोनों तरीकों से कोई समस्या नहीं कर सकता।

मैंने परीक्षण किया:

sudo ufw service stop

... और यह पूरी तरह से काम किया, यानी मुझे एक ssh कॉल से प्रतिक्रिया मिली।

तो, फिर से शुरू करें:

sudo ufw service start

... और नियम जोड़ें:

sudo ufw allow openssh

सभी अब ठीक काम कर रहे हैं।


इस ( ufw) ने Ubuntu 16.04 पर मेरी समस्या हल कर दी। मैंने नेत्रहीन रूप से जेनकींस स्थापना निर्देशों का पालन किया था और ufwइस प्रक्रिया में सक्षम था। इसे अक्षम करने के बाद, sshd फिर से काम कर रहा है।
पेंघे गेंग

1

यदि आप, मेरी तरह, ने UFW (लिनक्स, उबंटू को मेरे मामले में) सक्षम किया है, तो यह कोशिश करें:

sudo ufw enable OpenSSH

यह ओपनएसएसएच को फ़ायरवॉल में अनुमति देगा।


1
मैंने अभी खुद को बाहर बंद कर लिया है, और मैं बहुत बेवकूफ महसूस करता हूं। लेकिन वास्तव में ऐसा ही था।
मार्टीपी

0

बस दूसरों के लिए:

मुझे -Q के बजाय tcpdump में -P विकल्प का उपयोग करना था

tcpdump -i wlan1 port 22 -n -P inout

यदि आप डिस्ट्रो नाम / संस्करण का उपयोग करते हुए पहचानते हैं तो मैं इसे बढ़ा दूंगा।
रिचर्ड कुक

0

अधिकांश समय फ़ायरवॉल एक अपराधी है। करो service iptables stopऔर करो service ip6tables stop

यदि सेवा रोकना काम नहीं करता है, तो iptable फ्लश करें।

iptables --flush.

अगर इसका VM है तो होस्ट में भी ऐसा ही करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.