ssh_exchange_identification: पढ़ें: सहकर्मी द्वारा कनेक्शन रीसेट


105

मैं ओएस एक्स पर एक ubuntu 12.04 सर्वर में ssh करने की कोशिश कर रहा हूं। मैं एसएसएच में सक्षम था - जब तक अचानक सामान काम करना बंद न कर दे। मैंने इसे -vडीबग करने के लिए उपयोग करने के लिए ऑनलाइन पढ़ा है । आउटपुट नीचे दिखाया गया है। अगर मैं एक अलग बॉक्स में ssh करता हूं और फिर उस बॉक्स से उस सर्वर पर ssh करता हूं जिसे मैं लॉगिन करने में सक्षम हूं। मुझे नहीं पता कि इस समस्या को कैसे दूर किया जाए, लेकिन मैं सीखना चाहूंगा।

$ ssh -v me@server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug1: Connecting to server [IP] port 22.
debug1: Connection established.
debug1: identity file /Users/me/.ssh/id_rsa type 1
debug1: identity file /Users/me/.ssh/id_rsa-cert type -1
debug1: identity file /Users/me/.ssh/id_dsa type -1
debug1: identity file /Users/me/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
ssh_exchange_identification: read: Connection reset by peer

अब तक (संदेश बोर्डों की सलाह पर) मैंने एक मेजबान इनकार फ़ाइल की तलाश की है - लेकिन मेरी मशीन पर ऐसी कोई फ़ाइल नहीं है।

$ cat /etc/hosts.deny 
cat: /etc/hosts.deny: No such file or directory

मेरे पास क्लाइंट मशीन पर व्यवस्थापक एक्सेस है, लेकिन सर्वर पर नहीं।


मैं sshdएक वैकल्पिक पोर्ट पर सुनने की शुरुआत करने की सलाह दूंगा, जिसमें वर्बोज़ आउटपुट, और आउटपुट कनेक्ट करने की कोशिश करते समय इसे कनेक्ट करना होगा। $(which sshd) -d -p 23। यदि आपके पास ऐसा करने की क्षमता नहीं है, तो आपके विकल्प बहुत सीमित हैं। सर्वश्रेष्ठ शर्त किसी ऐसे व्यक्ति को प्राप्त करना है जिसके पास सर्वर पर अधिकार है।
पैट्रिक

क्या ऐसा हो सकता है कि सर्वर पर व्यवस्थापक ने किसी कारण से आपकी पहुंच प्रतिबंधित कर दी हो? किसी भी घटना में, मैं उस व्यक्ति से संपर्क कर सकता हूं।
mdpc

12
Hosts.deny और hosts.allow फ़ाइल क्लाइंट पर नहीं, सर्वर पर जाँच की जानी चाहिए । साथ ही, सर्वर पर सिस्टम लॉग की जाँच की जानी चाहिए। यदि आपके पास उन तक पहुंच नहीं है, तो आप एक नज़र लेने के लिए सर्वर व्यवस्थापक से संपर्क कर सकते हैं।
ckujau

क्या आपको इसका हल मिला? क्या समस्या थी?
MeV

2
एक hosts.deny सूची थी जिसे व्यवस्थापक द्वारा एक स्वचालित स्क्रिप्ट के साथ भर दिया गया था। जैसा कि मैंने कुछ समय पर अपना पासवर्ड भूल गया था, मेरे पास लॉग इन करने के कुछ असफल प्रयास थे, जब मेरे आईपी को होस्टसेडी सूची में डाल दिया गया था। अति-सुरक्षा की उत्पादकता के लिए बहुत कुछ।
के-माइकल ऐ

जवाबों:


23

अचानक परिवर्तन सर्वर sshdकॉन्फ़िगरेशन पर कॉन्फ़िगरेशन फ़ाइल में परिवर्तन का परिणाम हो सकता है, लेकिन आप इंगित करते हैं कि बिना व्यवस्थापक अधिकार के चेक या परिवर्तन नहीं कर सकते। यदि सर्वर के व्यवस्थापक (समय में) तक नहीं पहुंचा जा सकता है तो भी आप निम्न प्रयास कर सकते हैं।

आपका लॉग केवल स्थानीय संस्करण स्ट्रिंग को इंगित करता है, आपको sshdसर्वर और मध्यवर्ती मशीन पर चलने के संस्करणों की जांच करनी चाहिए ।

यदि ये संस्करण अलग-अलग हैं (विशेषकर स्थानीय मशीन और सर्वर के बीच और मध्यवर्ती मशीन और सर्वर के बीच कम) तो कुछ बातचीत असंगति हो सकती है, इससे पहले ऐसा हो चुका है ssh। इसका उपयोग सिपहसालार, HostKeyAl एल्गोरिदम और / या एमएसी प्रविष्टियों को छोटा करने के लिए किया जाता था, या तो कमांडलाइन ( ssh -c aes256-ctr, आदि) पर या आपके पर /etc/ssh/ssh_config

आप के लिए तर्क के रूप में उचित मूल्यों के लिए (सर्वर के लिए मध्यवर्ती के माध्यम से कनेक्ट होने से) डिबग जानकारी में दिखना चाहिए -c/ Ciphers, -o HostKeyAlgorithms/ HostKeyAlgorithmsऔर -m/ MACsकमांडलाइन resp। ssh_config बदलता है।

मुझे थोड़ी देर के लिए खुद यह समस्या नहीं थी, लेकिन IIRC जब मैंने किया, तो यह सिफर और होस्टकेलाइज़ोरिअम सेटिंग को मैन्युअल रूप से लागू करने के लिए पर्याप्त था, जिसके बाद मैं सर्वर के sshdसंस्करण को अपडेट कर सका और समस्या दूर हो गई।


3
मेरे मामले में, सर्वर sshdपैकेज को एक नए संस्करण में अपडेट किया गया था और परिणामस्वरूप मेरे वर्तमान sshक्लाइंट कॉन्फ़िगरेशन के साथ असंगति के परिणामस्वरूप । मेरी पुरानी sshकॉन्फ़िगरेशन फ़ाइलों को साफ़ करने ने चाल चली। यह स्वीकृत उत्तर होना चाहिए।
चक्रचर

2
@chakrit आपने अपनी पुरानी ssh कॉन्फ़िगरेशन फ़ाइलों को कैसे साफ़ किया?
जोनाथन

@ जोनाथन I ने इसे करने के लिए एक रिकवरी डिस्क माउंट किया।
6

16

आप पर प्रतिबंध लगा दिया गया है fail2banया हो सकता है denyhosts। ऐसे मामले में (और इसे जांचने के लिए भी), यदि आप अपने सर्वर प्रदाता की सहायता से परेशान नहीं होना चाहते हैं, तो आपको दूसरे आईपी पते से अपने सर्वर में लॉग इन करने की आवश्यकता है: जैसे कोई अन्य सर्वर, या किसी मित्र का घर कनेक्शन, या वाईफ़ाई गर्म स्थान, या टो के साथ SSH का उपयोग कर।

एक बार लॉग इन करने के बाद, जांचें कि आपका आईपी पता वास्तव में /etc/hosts.deny(सर्वर की तरफ) दिखाई देता है । यदि ऐसा है तो fail2banया denyhostsअपराधी वास्तव में होना चाहिए।

प्रक्रिया के लिए इस प्रश्न के उत्तर को देखें ताकि denyhostsआपके पते को लगातार अवरुद्ध करने से रोका जा सके । के fail2banसाथ अपने आईपी खोजने के लिए iptables -L --line-numberऔर आप के साथ आईपी unbaniptables -D <chain> <chain number> , आप howtoforge पर विवरण की जाँच करें ।

आप फिर से होने के लिए समस्या को रोकने के लिए अपने आईपी पते को क्रमशः fail2banऔर denyhostsश्वेतसूची में जोड़ सकते हैं (क्रमशः /etc/fail2ban/jail.conf, पंक्ति में ignoreip, और /var/lib/denyhosts/allowed-hostsयदि आवश्यक हो (लेकिन सावधान रहें कि आपके वितरण पर पथ भिन्न हो सकता है)।


9

होस्ट सर्वर पर, यहां स्थित ssh pub.key को हटा दें: ~/.ssh/authorized_keysअपने मैक के लिए। फिर tail -f /var/log/auth.logजब आप एक और टर्मिनल खोलते हैं और फिर से ssh करने की कोशिश करते हैं ssh -v me@server। यदि आपको पासवर्ड के लिए कहा जाता है तो आपकी ssh कुंजी में कोई समस्या थी। यदि आप अभी भी 'ssh_exchange_identification: पठन: सहकर्मी द्वारा प्रतिक्रिया रीसेट करें' प्रतिक्रिया देख रहे हैं, तो आपको यह पहचानने में सक्षम होना चाहिए कि आपके असफल प्रयास के लिए '/var/log/auth.log' फ़ाइल में लॉग प्रविष्टि से क्या समस्या है? लॉग इन करने के लिए।

यदि आप अभी भी कनेक्ट करने में विफल रहे हैं, तो यहां दिए गए फ़ाइल से लॉग प्रविष्टि दर्ज करें और मैं अपने उत्तर को संशोधित करूंगा।


कुछ मामलों में SSH कुंजी को हटाने की आवश्यकता नहीं है। सीधे पूंछ -f /var/log/auth.log पर जाएं और हाल के प्रयासों की जांच करें।
जैक रॉबसन

6

यह तब हो सकता है जब आपके पास एक ही मैक पते वाले नेटवर्क पर कई मशीनें हों (उदाहरण के लिए, यदि आप वर्चुअल मशीन की कॉपी बनाते हैं और मैक को बदलना भूल जाते हैं)।


4

मुझे यह मेरे ISP के नेमवेरर्स के कारण मिल रहा था /etc/resolv.conf। ये नेमसर्वर अक्सर ओवरलोडेड होते हैं और यदि रिवर्स DNS लुकअप विफल sshdहो जाता है तो कनेक्शन बंद हो जाएगा। मैंने अधिक विश्वसनीय नेमसर्वर्स का उपयोग करके समस्या का समाधान किया, जैसे 8.8.8.8


4

मैं उसी समस्या का सामना कर रहा था। मैं सफलतापूर्वक ssh सत्र खोलूंगा, लेकिन यह कुछ समय बाद रीसेट हो जाएगा। जब मैंने लाभ को तुरंत जोड़ने की कोशिश की तो मुझे "कनेक्शन मना कर दिया" त्रुटि मिल जाएगी। जब मैंने सत्र डीबग किया तो मुझे यह संदेश उस समय मिला जब कनेक्शन रीसेट हो रहा था

debug1: client_input_channel_req: channel 0 rtype keepalive@openssh.com reply 1  
debug1: client_input_channel_req: channel 0 rtype keepalive@openssh.com reply 1  
debug1: client_input_channel_req: channel 0 rtype keepalive@openssh.com reply 1  
debug1: channel 0: free: client-session, nchannels 1                             
debug3: channel 0: status: The following connections are open:                   
  #0 client-session (t4 r0 i0/0 o0/0 fd 4/5 cfd -1)                              

debug3: channel 0: close_fds r 4 w 5 e 6 c -1                                    
Read from remote host 10.x.y.z: Connection reset by peer                    
Connection to 10.x.y.z closed.                                              
debug1: Transferred: stdin 0, stdout 0, stderr 100 bytes in 1029.9 seconds       
debug1: Bytes per second: stdin 0.0, stdout 0.0, stderr 0.1                      
debug1: Exit status -1                                                           

इस बिंदु पर मुझे एहसास हुआ कि नेटवर्क पर एक आईपी एड्रेस संघर्ष था। मैं दूसरे पते पर बदल गया और समस्या हल हो गई


2
डाउनवोट्स, उत्तर के साथ क्या गलत है? यह अभी भी एक वैध मामला हो सकता है जब एक सूची में जा रहे हैं, बस दूसरों के बीच आम नहीं है।
पिसिस

@Pysis: सही, उत्क्रमित उत्तर
डैनियल

3

आपके लॉग का मतलब है कि सर्वर-साइड कनेक्शन को छोड़ देता है। कारण जानने के लिए, आपको सर्वर-साइड लॉग से परामर्श करना चाहिए, उन्हें वियोग का कारण दिखाना चाहिए। आपको लगभग हमेशा / var / log / संदेशों में लॉग ढूंढने में सक्षम होना चाहिए

मैं अनुमान लगा सकता हूं कि, जैसा कि क्लाइंट द्वारा भेजे गए संस्करण संख्या के बाद कनेक्शन गिरा दिया गया था, सर्वर किसी तरह क्लाइंट को असंगत के रूप में धमकी देता है।


3

मुझे एक ही समस्या थी लेकिन यह पता चला कि कारण अलग था: मैं गलत पोर्ट का उपयोग कर रहा था।

sshदिए गए त्रुटि के नए संस्करणों पर Connection refusedया है Bad port

पुराने संस्करणों पर दी गई त्रुटि है ssh_exchange_identification: read: Connection reset by peer

इसलिए जब पोर्ट सही हो तो आपको ऐसी त्रुटि की जाँच करें।


1

मुझे पता है कि यह सवाल पुराना है, लेकिन मैं कुछ निष्कर्षों को साझा करना चाहता था जो मेरे पास थे। जाँच करें कि /var/empty/sshdसर्वर पर उपयुक्त स्वामित्व और अनुमतियां हैं या नहीं।

हमारे पास एक शेफ स्क्रिप्ट थी जिसे कुछ निर्देशिका अनुमतियों को अपडेट करने के लिए संशोधित किया गया था, लेकिन अनजाने में इच्छित लक्ष्य से नीचे की निर्देशिका को अपडेट किया गया, एक एप्लिकेशन उपयोगकर्ता / समूह के स्वामित्व / संस्करण को बदलने और अनुमतियों को 775 में बदल दिया गया।


1

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

सर्वर से आपको प्राप्त हुआ अंतिम संदेश वह होता है जो आपके द्वारा प्रमाणीकरण के किसी भी प्रयास को शुरू करने से पहले होता है, जो आपके खाते, कुंजी, या पासवर्ड के आसपास की संभावनाओं के एक बड़े वर्ग को नियंत्रित करता है।

विक्रेताओं के यादृच्छिक नमूने से इस तरह के जानवर-बल नीतियों के उदाहरण हैं:

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