Bagaimana cara memperbaiki "ssh_exchange_identification: baca: Koneksi reset oleh rekan" kesalahan?

21

Saya tidak dapat terhubung ke server saya melalui ssh menggunakan komputer saya, tetapi saya dapat terhubung ke server ini melalui ponsel saya menggunakan aplikasi termius. Saya telah memeriksa /etc/hosts.allowdan /etc/hosts.denydan iptables saya, dan saya telah mencari google, sepertinya tidak ada jawaban yang cocok dengan masalah ini. Saya tidak tahu bagaimana menyelesaikannya, ini adalah ssh -v 183.17.228.80output

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

Saya dapat melakukan ping ke server ini, di sini adalah 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.
pengguna3054879
sumber
Mungkin ingin memeriksa apakah Anda telah menginstal DenyHosts, DenyHosts memiliki izin sendiri dan menolak file host.
Robby1212
apakah Anda yakin bahwa perangkat lunak yang Anda jalankan di PC kompatibel dengan semua mode enkripsi SSH?
Tharaka Devinda
seperti yang saya sebutkan, saya telah memeriksa file host, bukan untuk DenyHosts
user3054879
Saya tidak yakin, mungkin algoritma enkripsi berbeda, tetapi klien saya dempul .... tapi saya dapat ssh ke server yang sama dengan terminus di iOS
user3054879
Dari jalur file utama, saya kira Anda terhubung sebagai root. Ini biasanya tidak diaktifkan; lihat konfigurasi sshd Anda. ssh -vvvmungkin memberi Anda informasi lebih lanjut.
ridgy

Jawaban:

12

Hanya reboot server Anda yang Anda ingin ssh. Ini berhasil untuk saya, sebelumnya saya menghadapi masalah yang sama.

Harsh Singhal
sumber
1
Tidak dapat menemukan akar masalahnya, tetapi mem-boot ulang berfungsi untuk saya.
Raghavendra N
2
Saya mengalami masalah yang sama ketika ssh ke server gratis saya di AWS. Ini disebabkan server kehabisan memori. Mulai ulang bekerja.
leon
@thistleknot, me-reboot berfungsi untuk saya dan merupakan perbaikan cepat yang mudah. Tidak ada yang mengerikan tentang itu. Memang saya tidak tahu apa yang menyebabkan masalah, tetapi reboot memang memperbaiki sesuatu.
CousinCocaine
Jika me-reboot berfungsi mungkin itu bukan masalah konfigurasi, melainkan masalah sumber daya. Mungkin meningkatkan prioritas ssh mungkin telah melakukan trik.
JohnRos
1
Server reboot adalah saran yang sangat sangat buruk.
Hossein Vatani
8

Itu sebenarnya berarti bahwa IP Anda masuk daftar hitam oleh server. Coba daftar putih alamat IP Anda untuk bisa masuk. Anda dapat melihat daftar / etc / hosts untuk melihat apakah alamat ip server Anda telah berubah.

Mentertawakan
sumber
7
Itu benar-benar belum tentu demikian.
sempaiscuba
2
Ini sepertinya benar bagi saya. Saya mengetahui bahwa server Cloudways saya telah memasukkan daftar hitam IP rumah saya, dan saya perlu memasukkan daftar putih secara manual.
Ryan
Masalahnya hilang setelah beberapa jam, saya tidak tahu mengapa tetapi saya tidak perlu melakukan restart.
Salem F
Terima kasih atas komentarnya: "Server Cloudways telah memasukkan IP rumah saya ke daftar hitam" - ini baru saja terjadi pada kami - dimasukkan secara manual ke daftar putih dan semuanya berjalan lancar.
Jules Matthews
1

Kesalahan di atas terjadi ketika Anda memiliki batas gagal mencoba untuk mengotentikasi ke server dan Anda memiliki terlalu banyak kunci ssh pada klien Anda (lebih dari nilai MaxAuthTries)

Yang dapat Anda coba adalah meningkatkan nilai MaxAuthTries dan memulai kembali sshd daemon. Atau Anda dapat membatasi jumlah kunci dalam ~/.sshdirektori Anda dan menggunakan subdirektori dan ~/.ssh/configfile untuk menentukan kunci per host / grup host

Romeo Ninov
sumber
Saya telah mencoba ini, tetapi gagal, pada kenyataannya saya hampir mencoba setiap metode yang dapat saya temukan di internet, saya kira kuncinya adalah algoritma negosiasi enkripsi, tetapi saya tidak bagaimana memperbaikinya
user3054879
2
apa yang kamu coba harap perbarui pertanyaan Anda
Romeo Ninov
1

Cara saya memecahkan masalah adalah saya pergi ke mesin host dan menjalankan beberapa perintah.

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

Saya terhubung ke mesin setelah itu.

Sayan Biswas
sumber
1

Saya mengalami hal yang sama terjadi, dan perlu ssh -v 'ip addr' dan kemudian saya melihat bahwa saya perlu menerima sertifikat. Juga dapat berupa ACL atau aturan rute yang memblokir dempul: contoh -

Klien dempul memiliki 10.xxx addr dengan firewall memblokir jaringan perusahaan dari berbicara dengan host DMZ, tetapi ponsel Anda di 58.xxx apa pun alamat ip publik dapat berbicara dengan host dmz yang Anda coba jangkau.

jadi saya akan melihat info ssh -v ketika Anda mencoba untuk terhubung lagi, lihat apakah Anda dapat memperoleh info apa pun, dan kemudian memeriksa apakah ada aturan yang membuat Anda tidak bisa sampai ke server di tingkat firewall atau router, tidak dalam File denyhosts di server itu sendiri.

Danny
sumber
0

Saya menggunakan hot spot seluler saya untuk terhubung ke web, ketika saya sedang bekerja konsol membeku, dan saya tidak bisa terhubung lagi ssh_exchange_identification: read: Connection reset by peer

Saya mencoba mengatur ulang SRV tetapi tidak membantu

Hanya ketika saya mengubah koneksi jaringan saya (ke hotspot di seluler yang berbeda) saya bisa terhubung lagi.

CATATAN: Saya masih dapat menggunakan koneksi lama untuk terhubung ke SRV pada AWS yang berbeda, aneh ...

Elia Weiss
sumber
0

Untuk mengatasi masalah ini, lanjutkan sebagai berikut:

  1. Reboot server Anda dari terminal server online.

Jika ini tidak berhasil,

  1. Edit file $HOME/.ssh/known_hosts
  2. Hapus konten apa pun di dalam file ini, ketika itu akan menyambung kembali ke server yang Anda ssh maka Anda harus menerima kembali koneksi.
mkmr
sumber
1
-1 untuk penghapusan lengkap known_hosts. Akan lebih baik untuk mengedit host khusus ini dalam pertanyaan (walaupun saya ragu itu akan membantu di sini).
David Foerster
0

Buat pasangan kunci ssh baru untuk otentikasi pengguna. Panduan Kunci dan Otentikasi Kunci Publik SSH

Ikuti saja panduan ini.

k500
sumber
Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Kevin Bowen
0

Mungkin ada banyak alasan tetapi salah satu alasan yang paling mungkin adalah (dalam kasus saya) ssh / port 22 tidak diizinkan oleh firewall .

Anda dapat mengizinkan koneksi ssh dengan antarmuka-Pengguna (beberapa penyedia mengizinkannya) atau Jika Anda memiliki metode alternatif untuk login (Mis. Digitalocean menyediakan tombol konsol) Anda dapat menjalankan perintah di bawah ini

sudo ufw allow ssh
sudo ufw allow 22
BSB
sumber
0

Sepertinya daemon ssh di server digantung. Apakah Anda yakin itu berjalan? Ketika Anda telnet ke ssh, Anda harus melihat tanda tangan. Sesuatu seperti:

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

Apa yang saya lihat dari output Anda adalah ssh daemon tidak merespons di sisi server. Saya sarankan untuk terhubung melalui IP-KVM (atau dengan cara lain) ke mesin jarak jauh dan restart sshd.

adm.unix
sumber
0

Ini bisa jadi karena Anda tidak memiliki server openssh yang berjalan di ubuntu Anda. Anda dapat menjalankan perintah di bawah ini untuk memeriksa status server openssh Anda.

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)

Jika statusnya bukan active (running), Anda mungkin ingin menginstal dan / atau memulai openssh-server. Anda dapat melakukannya dengan perintah yang ditunjukkan di bawah ini.

sudo apt update
sudo apt install openssh-server
Sasidhar Sekar
sumber
0

Saya memiliki masalah yang sama tetapi setelah me-restart daemon sshd saya dapat terhubung ke host.

sudo systemctl restart sshd && systemctl status sshd

Ini hanya solusi sementara sampai Anda meningkatkan parameter MaxAuthTries.

Kirill Belous
sumber
-2
  1. Periksa sshd dalam menginstal dan menjalankan server.
  2. Pastikan bahwa daemon sudah diinstal dan dimulai. Anda harus dapat 'man sshd'. Saya pikir paket itu terbuka-ssl, dan Anda harus memulai daemon (dan menghentikannya ketika Anda tidak membutuhkannya.).
Bruce Salem
sumber
tentu saja saya telah menginstal sshd, seperti yang saya sebutkan, saya dapat ssh ke server yang sama dengan terminus di iphone ... tapi dempul gagal
user3054879