ข้อผิดพลาดการเชื่อมต่อ SSH: ssh_exchange_identification: อ่าน: การเชื่อมต่อรีเซ็ตโดยเพียร์


25

เมื่อฉันพยายามเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน SSH ฉันได้รับข้อผิดพลาดดังต่อไปนี้

[root@oneeighty ~]# ssh -vvv -p 443 root@xxx.xxx.xxx
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to xxx.xxx.xxx [IP] port 443.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/identity type -1
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_dsa type -1
debug1: loaded 3 keys
ssh_exchange_identification: read: Connection reset by peer

ฉันได้ตรวจสอบการกำหนดค่า SSH บนเซิร์ฟเวอร์และไคลเอนต์และไม่มีปัญหา

เริ่มบริการ SSH ใหม่บนเซิร์ฟเวอร์จากนั้นรีสตาร์ทเซิร์ฟเวอร์ / ไคลเอ็นต์ แต่ปัญหาไม่ได้รับการแก้ไข


คุณสามารถอนุญาตการเชื่อมต่อ ssh ด้วยไฟร์วอลล์ส่วนต่อประสานกับผู้ใช้ (ผู้ให้บริการบางรายอนุญาต) หรือหากคุณมีวิธีอื่นในการเข้าสู่ระบบ (เช่น digitalocean ให้ปุ่มคอนโซล) คุณสามารถเรียกใช้คำสั่งด้านล่าง sudo ufw อนุญาต ssh sudo ufw อนุญาต 22
BSB

คำตอบ:


26

นี่อาจเป็นผลมาจากหลายสิ่ง

มีบางสิ่งที่คุณสามารถลองได้อย่างรวดเร็วดังนี้

  • ดูใน /etc/hosts.deny สำหรับรายการใด ๆ ที่ต้องการ sshd: ALL
  • บางทีเพิ่มsshd: ALLไป/etc/hosts.allow

  • เป็นไปได้ว่า HostKey ของ SSHD ของคุณเสียหาย พวกเขากำลังอยู่ในไดเรกทอรี / etc / ssh / คุณสามารถลบพวกเขาและรีสตาร์ท sshd และมันจะสร้างพวกเขาอีกครั้ง ในกรณีที่มีข้อผิดพลาดโปรดใช้คำสั่งต่อไปนี้

    $ ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
    $ ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
    $ ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
    $ /etc/init.d/sshd start
    

บนไฟล์ /etc/hosts.deny และ /etc/hosts.allow บรรทัดทั้งหมดจะถูกคอมเม้นต์
Senthil G

1
โปรดเพิ่มsshd: ALLไปยัง hosts.deny เพื่อตรวจสอบว่ามีประโยชน์หรือไม่
vagarwal

2

บรรทัดถัดไปในการดีบักควรมีลักษณะดังนี้:

debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3p1 Debian-3ubuntu7

คุณได้ยืนยันใน StackOverflow ว่าคุณกำลังใช้ NATing / การส่งต่อพอร์ตจากที่อยู่ IP ภายนอก คุณได้ตรวจสอบแล้วว่าคุณสามารถ ssh จากกล่องโลคอลไปยังตัวมันเอง ในฐานะที่เป็น sshing เฉพาะที่พอร์ต 443 ทำงานแล้วคุณจะต้องตรวจสอบการทำงานของการทำแผนที่พอร์ต

ลอง:

  1. SSH จากกล่องอื่นในเครือข่ายย่อยเดียวกัน
  2. เรียกใช้iptables -Lและตรวจสอบว่าพอร์ต 443 เปิดอยู่หรือตั้งค่า INPUT และ OUTPUT เป็น ACCEPT
  3. เรียกใช้tcpdump -A -s 0 port 443แล้วลอง sshing กับ IP ภายนอก คุณควรเห็นข้อมูลมาพร้อมกับที่อยู่แหล่งที่มาของเราเตอร์

2

FWIW ฉันใช้งาน Ubuntu 14.04 บน AWS ประเด็นสำคัญคือการแก้ไขโดย SSHing ผ่านลูกค้าของพวกเขา Java Web sudo service apache2 startและการทำงาน ฉันแค่ต้องการให้เว็บไซต์ของฉันสำรอง แต่ก็ยังคงการเข้าถึง SSH ไม่มีความคิดว่าทำไม แต่ฉันไม่ได้บ่น


ปัญหาเดียวกันที่นี่ เซสชั่นของฉันไม่ตอบสนองโดยไม่มีเหตุผลและฉันไม่สามารถเชื่อมต่อผ่านผงสำหรับอุดรู การใช้เว็บไคลเอ็นต์ทำสิ่งที่วิเศษเพื่อให้การเชื่อมต่อของฉันผ่านผงสำหรับอุดรูที่จะทำงานอีกครั้ง
AndrewK

ขอบคุณฉันไม่รู้วิธี แต่ช่วยได้จริงๆ *** aws
Siarhey Uchukhlebau

1

ตรวจสอบที่ได้รับอนุญาตโฮสต์บนเซิร์ฟเวอร์ที่คุณพยายามเชื่อมต่อรวมถึงกฎ iptables ใด ๆ ที่ทำงานอยู่


1

ปัญหาได้รับการแก้ไขแล้ว
ปัญหาเกิดขึ้นกับตัวโหลดบาลานซ์ที่เรามีในเครือข่ายของเรา ปัญหานี้ได้รับการแก้ไขเมื่อเริ่มการทำงานของตัวโหลดบาลานซ์อีกครั้ง


1

ฉันเผชิญกับปัญหาที่คล้ายกันในวันนี้เนื่องจากจู่ ๆ การเข้าถึง ssh ไปยัง VM ก็ถูกปฏิเสธด้วยข้อความเดียวกัน ssh -v (ที่ลูกค้า) และ sshd -d (ที่เซิร์ฟเวอร์) ไม่ได้ช่วยอะไรมาก ปัญหาในกรณีของฉันเริ่มต้นเนื่องจากมีการเปลี่ยนแปลงในการตั้งค่าไฟร์วอลล์ / iptable ซึ่งฉันได้สำหรับการสาธิตการใช้ LAMP stack

ฉันใช้system-config-firewall-tuiเพื่อเปิดใช้งานไฟร์วอลล์และเลือกเฉพาะ httpd จากที่นั่นซึ่งบล็อกบริการอื่น ๆ ทั้งหมดยกเว้น httpd

ดังนั้นในการแก้ไขปัญหานี้ให้เพิ่มสิทธิ์ในการsshdด้วย

  • อัปเดตการตั้งค่า iptable conf หรือ
  • การเลือก sshd จาก system-config-firewall-tui OR
  • ปิดการใช้งานไฟร์วอลล์หรือ
  • หยุดบริการ iptable (rhel6 และลบออกจาก chkconfig) บริการ iptables หยุด

ssh ใช้งานได้ดีอย่างสมบูรณ์แบบในขณะนี้ !!!


0

สำหรับฉันฉันอนุญาตการเชื่อมต่อ sshd ในไฟล์ / etc / hosts

vi /etc/hosts.allow
and add 

sshd: ALL

0

วิธีที่ฉันแก้ปัญหาคือฉันไปที่เครื่องโฮสต์และรันคำสั่งไม่กี่คำ

sudo mkdir / var / run / sshd

sudo chmod 755 -R / var / run / sshd

sudo service ssh เริ่มต้นใหม่

ฉันได้เชื่อมต่อกับเครื่องหลังจากนั้น


-3

การกำจัด openssh- * ครั้งแรก (openssh-server และ openssh-client)

apt-get --purge remove openssh-*

การลบไดเร็กทอรี /home/username/.ssh

rm -rf /home/username/.ssh 

จากนั้นติดตั้ง openssh-server ของคุณและ openssh-client

apt-get install openssh-server openssh-client

3
ไม่ไม่ได้ปิดคำตอบของ OPบอกว่าปัญหาคืออะไร คำตอบของคุณเฉพาะกับ distros ที่ใช้ apt OP คือใช้ RHEL การลบและติดตั้งแพคเกจใหม่แทบจะไม่เคยเป็นทางออก
user9517 รองรับ GoFundMonica

คุณทำทั้งหมดนี้บนโลคัลหรือรีโมตเซิร์ฟเวอร์หรือไม่?
Jonathan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.