SSH मुद्दे: सॉकेट से पढ़ें विफल: सहकर्मी द्वारा कनेक्शन रीसेट


14

मैंने हमारे एक सर्वर पर OpenSSH_6.6p1 संकलित किया। मैं उन्नत सर्वर से SSH के माध्यम से लॉगिन करने में सक्षम हूं। लेकिन मैं इसमें से OpenSSH_6.6p1 या OpenSSH_5.8 चलाने वाले अन्य सर्वर से कनेक्ट नहीं हो पा रहा हूं। कनेक्ट करते समय मुझे नीचे के रूप में एक त्रुटि मिल रही है।

Read from socket failed: Connection reset by peer

लॉग में गंतव्य सर्वर पर, मैं इसे नीचे के रूप में देख रहा हूं।

sshd: fatal: Read from socket failed: Connection reset by peer [preauth]

मैंने यहाँ उल्लेख के अनुसार cipher_spec [ssh -c aes128-ctr डेस्टिनेशन-सर्वर] को निर्दिष्ट करने की कोशिश की और कनेक्ट करने में सक्षम था। डिफ़ॉल्ट रूप से सिफर का उपयोग करने के लिए ssh को कैसे कॉन्फ़िगर कर सकते हैं? यहां सिफर की आवश्यकता क्यों है?


जिस सर्वर से आपको यह त्रुटि मिलती है, आप क्या करते हैं telnet ip.or.name.of.offending.server 22?
मध्याह्न

1
दोनों पक्षों को लगता है कि दूसरे पक्ष ने कनेक्शन बंद कर दिया है। इस बिंदु पर मैं tcpdump या वायरशार्क को तोड़ दूंगा और इसे दोनों छोर पर चलाऊंगा।
माइकल हैम्पटन

@ मैटरटर मैं पोर्ट 22 पर टेलनेट करने और एसएसएच प्रतिक्रिया प्राप्त करने में सक्षम हूं।
नाइटिन्स

Openpsh के पिछले संस्करणों को 6.5p1 की तरह संकलित करने की कोशिश करें कि क्या यह व्यवहार कोडबेस में बदलाव के कारण है?

जवाबों:


7

समस्या सर्वर-साइड बग की तरह लगती है। जब ग्राहक सिफर्स की सूची भेजता है तो ओपनश सर्वर संभवतः एकल सिस्टम कॉल में सूची को पढ़ने में सक्षम होने की उम्मीद करता है।

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

ग्राहक को कॉन्फ़िगर करने के लिए साइफर की एक छोटी सूची का उपयोग करने के लिए बग के आसपास काम करना होगा। खुलने वाला क्लाइंट निम्न स्थानों पर सिफर्स की सूची की तलाश करेगा:

  1. कमांड लाइन पर -c cipher_spec या -o Ciphers = cipher_spec का उपयोग कर
  2. प्रासंगिक होस्ट अनुभाग में या पहले होस्ट से पहले सिफर्स / सिफर_स्पेक निर्दिष्ट करके ~ / .ssh / config में।
  3. में / etc / ssh / ssh_config ~ / .ssh / config के समान प्रारूप का उपयोग करते हुए
  4. संकलित समय पर क्लाइंट में बनाई गई एक डिफ़ॉल्ट सूची।

दो कॉन्फ़िगरेशन फ़ाइलें क्रमशः प्रति उपयोगकर्ता और सिस्टम-वाइड सेटिंग्स हैं। Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbcसुझाव दिया एरिक की तरह का उपयोग ठीक काम करना चाहिए।


क्या यह ओपनश के उस संस्करण में एक ज्ञात दोष है? किसी को भी इस मुद्दे के लिए खुलता बग- tracker के लिए एक कड़ी है?
user313114

1
@ user313114 मैंने ऐसे किसी ट्रैकर की तलाश नहीं की है क्योंकि मेरा मानना ​​है कि यह उत्तर लिखे जाने पर बग तीन साल पहले ही नए संस्करणों में तय हो गया था।
कास्परड

4

आप ssh config फाइल (/ etc / ssh / ssh_config या समान में सिफर निर्दिष्ट कर सकते हैं, $ PREFIX आदि पर निर्भर करता है)। कमांड लाइन पर क्लाइंट को ssh पास करने का कोई भी विकल्प ssh (क्लाइंट) कॉन्फिगर फाइल में सेट किया जा सकता है।

यहाँ प्रासंगिक लाइन है (सिर्फ असहजता):

#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc

3

इसे ठीक करने का मेरा तरीका , आशा है कि यह किसी की मदद करता है:

# Recreate host keys
sudo rm /etc/ssh/ssh_host_*
sudo ssh-keygen -A

# Re-install SSh
sudo apt-get --reinstall install openssh-server openssh-client

मान जोड़कर sshd_config संपादित करें

add :  MaxAuthTries 3

मान को अनसुना करके ssh_config संपादित करें

Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc

0

नीचे फ़ाइल अनुमतियों को 600 में संशोधित करके इस मुद्दे को हल किया।

/ etc / ssh / ssh_host_dsa_key
/ etc / ssh / ssh_host_rsa_key
/ etc / ssh / ssh_host_ecdsa_key

इसके अलावा '/ etc / ssh /' के अंदर अन्य सभी फ़ाइलों के लिए अनुमति को संशोधित किया। सभी फ़ाइलों को 'रूट' के स्वामित्व में होना चाहिए।

नीचे '/ etc / ssh' डायरेक्टरी के तहत सभी फाइलों के लिए उचित अनुमति देने के लिए कमांड का पूरा सेट दिया गया है:

chown root: root / etc / ssh / * chmod 644 / etc / ssh / *
chmod 600 / etc / ssh / ssh_host_dsa_key
chmod 600 / etc / ssh / ssh /host_rsa_key
chmod 600 / etc / ssh / ssh_host_ecdsa_key


-1

मेरी समस्या जिसमें ठीक वही लक्षण थे जो आप देख रहे थे, जो कि मेज़बान चाबियों के कारण थी। उन्हें पुनः बनाने की कोशिश करें:

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