วิธีการแก้ไขข้อผิดพลาด“ ssh_exchange_identification: อ่าน: การเชื่อมต่อรีเซ็ตโดยเพียร์” เกิดข้อผิดพลาด?


21

ฉันไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ของฉันผ่าน ssh โดยใช้คอมพิวเตอร์ของฉัน แต่ฉันสามารถเชื่อมต่อกับเซิร์ฟเวอร์นี้ผ่านโทรศัพท์มือถือของฉันโดยใช้แอพ termius ฉันได้ตรวจสอบ/etc/hosts.allowและ/etc/hosts.denyและ iptables ของฉันและฉันได้ค้น google แล้วดูเหมือนว่าไม่มีคำตอบที่เหมาะกับปัญหานี้ ฉันไม่รู้วิธีแก้ปัญหานี่คือssh -v 183.17.228.80ผลลัพธ์

debug1: Connecting to 183.17.228.80 [183.17.228.80] port 22.
debug1: Connection established.=======================   
debug1: permanently_set_uid: 0/0   
debug1: SELinux support disabled  
debug1: key_load_public: No such file or directory    
debug1: identity file /root/.ssh/id_rsa type -1    
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_rsa-cert type -1      
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_dsa type -1   
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_dsa-cert type -1   
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_ecdsa type -1  
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_ecdsa-cert type -1   
debug1: key_load_public: No such file or directory  
debug1: identity file /root/.ssh/id_ed25519 type -1   
debug1: key_load_public: No such file or directory  
debug1: identity file /root/.ssh/id_ed25519-cert type -1  
debug1: Enabling compatibility mode for protocol 2.0  
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.2   
ssh_exchange_identification: read: Connection reset by peer

ฉันสามารถ ping เซิร์ฟเวอร์นี้นี่คือ telnet

telnet 183.17.228.29 22  
Trying 183.17.228.29...  
Connected to 183.17.228.29.  
Escape character is '^]'.                                                                 
Connection closed by foreign host.

อาจต้องการตรวจสอบว่าคุณได้ติดตั้ง DenyHosts หรือไม่ DenyHosts มีการอนุญาตและปฏิเสธไฟล์โฮสต์
Robby1212

คุณแน่ใจหรือไม่ว่าซอฟต์แวร์ที่คุณใช้บนเครื่อง PC นั้นเข้ากันได้กับโหมดการเข้ารหัส SSH ทั้งหมด
Tharaka Devinda

ตามที่ฉันได้กล่าวไปแล้วฉันได้ตรวจสอบไฟล์โฮสต์ไม่ใช่สำหรับ DenyHosts
user3054879

ฉันไม่แน่ใจอาจอัลกอริทึมการเข้ารหัสอาจแตกต่างกัน แต่ลูกค้าของฉันเป็นฉาบ .... แต่ฉันสามารถ ssh ไปยังเซิร์ฟเวอร์เดียวกันโดยปลายทางบน IOS
user3054879

rootจากเส้นทางของไฟล์ที่สำคัญที่ฉันคิดว่าคุณกำลังเชื่อมต่อเป็น โดยปกติจะไม่เปิดใช้งาน ดูการกำหนดค่า sshd ของคุณ ssh -vvvอาจให้ข้อมูลเพิ่มเติมแก่คุณ
ridgy

คำตอบ:


14

เพียงรีบูตเซิร์ฟเวอร์ของคุณที่คุณต้องการ ssh มันใช้งานได้สำหรับฉันก่อนหน้านี้ฉันกำลังเผชิญปัญหาเดียวกัน


1
ไม่พบสาเหตุที่แท้จริง แต่การรีบูตเครื่องทำงานให้ฉัน
Raghavendra N

2
ฉันพบปัญหาเดียวกันเมื่อ ssh ไปยังเซิร์ฟเวอร์ฟรีของฉันบน AWS มันเกิดจากเซิร์ฟเวอร์หมดหน่วยความจำ รีบูตทำงานได้
leon

@thistleknot การรีบูตใช้งานได้สำหรับฉันและเป็นการแก้ไขด่วนอย่างง่าย ไม่มีอะไรน่ากลัวเกี่ยวกับเรื่องนั้น แน่นอนฉันไม่ทราบว่าสิ่งที่ทำให้เกิดปัญหา แต่การรีบูตเครื่องแก้ไขบางสิ่งบางอย่าง
CousinCocaine

หากการรีบูตเครื่องทำงานอาจไม่ใช่ปัญหาการกำหนดค่า แต่เป็นปัญหาทรัพยากร บางทีการเพิ่มลำดับความสำคัญของ ssh อาจทำเคล็ดลับ
JohnRos

1
เซิร์ฟเวอร์ reboot เป็นข้อเสนอแนะที่แย่มาก
Hossein Vatani

8

นั่นหมายความว่า IP ของคุณถูกขึ้นบัญชีดำโดยเซิร์ฟเวอร์ ลองทำรายการที่อยู่ IP ของคุณให้ปลอดภัยเพื่อให้สามารถเข้าสู่ระบบได้ คุณอาจดูรายการ / etc / hosts เพื่อดูว่าที่อยู่ IP ของเซิร์ฟเวอร์ของคุณเปลี่ยนไปหรือไม่


7
นั่นเป็นเรื่องที่ไม่จำเป็นจริงๆ
sempaiscuba

2
นี่ดูเหมือนจะเป็นจริงสำหรับฉัน ฉันพบว่าเซิร์ฟเวอร์ Cloudways ของฉันได้ขึ้นบัญชีดำที่บ้านของฉันและฉันต้องการรายการที่อนุญาตด้วยตนเอง
Ryan

ปัญหาหายไปหลังจากไม่กี่ชั่วโมงฉันไม่รู้ว่าทำไม แต่ฉันไม่จำเป็นต้องรีสตาร์ท
เซเลม F

ขอบคุณสำหรับความคิดเห็นเรื่อง: "เซิร์ฟเวอร์ Cloudways ได้ขึ้นบัญชี IP ที่บ้านของฉัน" - นี่เพิ่งเกิดขึ้นกับเรา - รายการที่อนุญาตด้วยตนเองและทั้งหมดที่ดีที่จะไป
Jules Matthews

1

ข้อผิดพลาดดังกล่าวเกิดขึ้นเมื่อคุณมีข้อ จำกัด ของความพยายามที่ล้มเหลวในการรับรองความถูกต้องกับเซิร์ฟเวอร์และคุณมีคีย์ ssh มากเกินไปในไคลเอนต์ของคุณ (มากกว่ามูลค่า MaxAuthTries)

สิ่งที่คุณสามารถลองได้คือการเพิ่มค่าของ MaxAuthTries และรีสตาร์ท sshd daemon หรือคุณสามารถ จำกัด จำนวนของคีย์ใน~/.sshไดเรกทอรีของคุณและใช้ไดเรกทอรีย่อยและ~/.ssh/configไฟล์เพื่อกำหนดคีย์ต่อโฮสต์ / กลุ่มของโฮสต์


ฉันลองสิ่งนี้แล้ว แต่ล้มเหลวจริงๆแล้วฉันเกือบจะลองทุกวิธีที่ฉันพบบนอินเทอร์เน็ตฉันเดาว่ากุญแจคืออัลกอริธึมการเข้ารหัส negeotiation แต่ฉันไม่สามารถแก้ไขได้
user3054879

2
คุณลองทำอะไร โปรดอัปเดตคำถามของคุณ
Romeo Ninov

1

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

sudo mkdir /var/run/sshd
sudo chmod 755 -R /var/run/sshd
sudo service ssh restart

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


1

ฉันมีสิ่งเดียวกันนี้เกิดขึ้นและต้องการ ssh -v 'ip addr' จากนั้นฉันเห็นว่าฉันต้องยอมรับใบรับรอง นอกจากนี้อาจเป็น ACL หรือกฎเส้นทางปิดกั้นโป๊ว: ตัวอย่าง -

Putty client มี 10.xxx addr พร้อมไฟร์วอลล์ปิดกั้นเครือข่ายองค์กรไม่ให้พูดคุยกับโฮสต์ DMZ แต่โทรศัพท์มือถือของคุณที่ 58.xxx ไม่ว่าที่อยู่ IP สาธารณะจะสามารถพูดคุยกับโฮสต์ DMZ ที่คุณพยายามเข้าถึงได้

ดังนั้นฉันจะดูข้อมูล ssh -v เมื่อคุณพยายามเชื่อมต่ออีกครั้งดูว่าคุณสามารถรวบรวมข้อมูลใด ๆ หรือไม่จากนั้นตรวจสอบว่ามีกฎที่ทำให้คุณไม่สามารถเข้าถึงเซิร์ฟเวอร์ของคุณในระดับไฟร์วอลล์หรือเราเตอร์ไม่ใช่ใน ไฟล์ denyhosts บนเซิร์ฟเวอร์เอง


0

ฉันใช้ฮอตสปอตมือถือของฉันเพื่อเชื่อมต่อกับเว็บในขณะที่ฉันกำลังทำงานกับคอนโซลตัวแข็งและฉันไม่สามารถเชื่อมต่อได้อีก ssh_exchange_identification: read: Connection reset by peer

ฉันพยายามรีเซ็ต SRV แต่ก็ไม่ได้ช่วยอะไร

เมื่อฉันเปลี่ยนการเชื่อมต่อเครือข่ายของฉัน (เป็นฮอตสปอตในมือถืออื่น) ฉันสามารถเชื่อมต่อได้อีกครั้ง

หมายเหตุ: ฉันยังคงสามารถใช้การเชื่อมต่อเก่าเพื่อเชื่อมต่อกับ SRV บน AWS ที่แตกต่างกันแปลก ...


0

เพื่อแก้ไขปัญหาดำเนินการดังนี้:

  1. รีบูตเซิร์ฟเวอร์ของคุณจากเซิร์ฟเวอร์ออนไลน์เทอร์มินัล

หากไม่ได้ผล

  1. แก้ไขไฟล์ $HOME/.ssh/known_hosts
  2. ลบเนื้อหาใด ๆ ภายในไฟล์นี้เมื่อมันจะเชื่อมต่อกับเซิร์ฟเวอร์ใด ๆ ที่คุณ ssh แล้วคุณจะต้องยอมรับการเชื่อมต่ออีกครั้ง

1
-1 known_hostsการลบสมบูรณ์ของ มันจะเป็นการดีกว่าที่จะแก้ไขโฮสต์ที่เป็นปัญหานี้ (แม้ว่าฉันจะสงสัยว่าจะช่วยได้ที่นี่)
David Foerster

0

สร้างคู่คีย์ ssh ใหม่สำหรับการตรวจสอบผู้ใช้ คู่มือ SSH และการรับรองความถูกต้องของคีย์สาธารณะ

เพียงทำตามคำแนะนำ


ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Kevin Bowen

0

อาจมีหลายเหตุผล แต่หนึ่งในเหตุผลที่เป็นไปได้มากที่สุดสามารถ (ในกรณีของฉันมันเป็น) SSH / 22 พอร์ตไม่ได้รับอนุญาตโดยไฟร์วอลล์

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

sudo ufw allow ssh
sudo ufw allow 22

0

ดูเหมือนว่า ssh daemon บนเซิร์ฟเวอร์จะหยุดทำงาน คุณแน่ใจหรือว่ากำลังใช้งานอยู่ เมื่อคุณเทลเน็ตไปยัง ssh คุณต้องเห็นลายเซ็น สิ่งที่ต้องการ:

telnet unixhow.com 22
Trying 35.228.26.20...
Connected to unixhow.com.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.1

สิ่งที่ฉันเห็นจากผลลัพธ์ของคุณคือ ssh daemon ไม่ตอบสนองทางฝั่งเซิร์ฟเวอร์ ฉันแนะนำให้เชื่อมต่อผ่าน IP-KVM (หรือวิธีอื่น) กับเครื่องระยะไกลและรีสตาร์ท sshd


0

อาจเป็นเพราะคุณไม่มีเซิร์ฟเวอร์ openssh ที่ทำงานบน Ubuntu ของคุณ คุณสามารถเรียกใช้คำสั่งด้านล่างเพื่อตรวจสอบสถานะของเซิร์ฟเวอร์ openssh ของคุณ

ubuntu@ubuntu:~$ sudo systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-03-20 11:52:16 GMT; 5min ago
  Process: 1034 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
 Main PID: 1058 (sshd)
    Tasks: 1
   Memory: 5.1M
      CPU: 122ms
   CGroup: /system.slice/ssh.service
           └─1058 /usr/sbin/sshd -D

Mar 20 11:52:15 ubuntu systemd[1]: Starting OpenBSD Secure Shell server...
Mar 20 11:52:16 ubuntu sshd[1058]: Server listening on 0.0.0.0 port 22.
Mar 20 11:52:16 ubuntu sshd[1058]: Server listening on :: port 22.
Mar 20 11:52:16 ubuntu systemd[1]: Started OpenBSD Secure Shell server.
Mar 20 11:52:24 ubuntu sshd[1131]: Connection closed by 10.0.2.2 port 60566 [preauth]
Mar 20 11:53:59 ubuntu sshd[1135]: Accepted password for ubuntu from 10.0.2.2 port 60654 ssh2
Mar 20 11:53:59 ubuntu sshd[1135]: pam_unix(sshd:session): session opened for user ubuntu by (uid=0)
Mar 20 11:57:48 ubuntu sshd[1238]: Accepted password for ubuntu from 10.0.2.2 port 61124 ssh2
Mar 20 11:57:48 ubuntu sshd[1238]: pam_unix(sshd:session): session opened for user ubuntu by (uid=0)

หากสถานะไม่เป็นactive (running)เช่นนั้นคุณอาจต้องการติดตั้งและ / หรือเริ่ม openssh-server คุณสามารถทำได้ด้วยคำสั่งที่แสดงด้านล่าง

sudo apt update
sudo apt install openssh-server

0

ฉันมีปัญหาเดียวกัน แต่หลังจากรีสตาร์ท sshd daemon ฉันสามารถเชื่อมต่อกับโฮสต์

sudo systemctl restart sshd && systemctl status sshd

นี่เป็นวิธีแก้ปัญหาชั่วคราวเท่านั้นจนกว่าคุณจะเพิ่มพารามิเตอร์ MaxAuthTries


0

โซลูชันของฉันคือเพิ่มที่อยู่ IP ท้องถิ่นของฉันไปที่/etc/hosts.allow:

sshd:192.168.10.88:allow

มันใช้งานได้สำหรับฉัน


-2
  1. ตรวจสอบ sshd ที่ติดตั้งและใช้งานเซิร์ฟเวอร์
  2. ตรวจสอบให้แน่ใจว่าติดตั้ง daemon และเริ่มต้นแล้วคุณจะต้องสามารถ 'man sshd' ฉันคิดว่าแพ็คเกจมันอยู่ใน open-ssl และคุณจะต้องเริ่ม daemon (และหยุดมันเมื่อคุณไม่ต้องการมัน)

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