GNU/Linux >> Belajar Linux >  >> Linux

ssh_exchange_identification:Koneksi ditutup oleh host jarak jauh (tidak menggunakan hosts.deny)

Awalnya diposting di Ask Ubuntu

Jika Anda telah mengesampingkan faktor "eksternal", serangkaian langkah berikut biasanya membantu mempersempitnya. Jadi meskipun ini tidak menjawab pertanyaan Anda secara langsung, ini dapat membantu melacak penyebab kesalahan.

Pemecahan masalah sshd

Apa yang menurut saya sangat berguna dalam kasus seperti itu adalah memulai sshd tanpa membiarkannya melakukan daemonisasi. Masalah dalam kasus saya adalah tidak ada syslog maupun auth.log menunjukkan sesuatu yang berarti.

Ketika saya memulainya dari terminal saya mendapat:

# $(which sshd) -Ddp 10222
/etc/ssh/sshd_config line 8: address family must be specified before ListenAddress.

Jauh lebih baik! Pesan kesalahan ini memungkinkan saya untuk melihat apa yang salah dan memperbaikinya. Tak satu pun dari file log berisi keluaran ini.

NB: setidaknya di Ubuntu $(which sshd) adalah metode terbaik untuk memenuhi sshd persyaratan jalur absolut. Jika tidak, Anda akan mendapatkan kesalahan berikut:sshd re-exec requires execution with an absolute path . -p 10222 membuat sshd mendengarkan pada port alternatif itu, mengesampingkan file konfigurasi - ini agar tidak berbenturan dengan kemungkinan menjalankan sshd contoh. Pastikan untuk memilih port gratis di sini.

Terakhir:sambungkan ke port alternatif (ssh -p 10222 [email protected] ).

Metode ini telah membantu saya berkali-kali dalam menemukan masalah, baik itu masalah otentikasi atau jenis lainnya. Untuk mendapatkan keluaran yang benar-benar verbose ke stdout , gunakan $(which sshd) -Ddddp 10222 (perhatikan dd yang ditambahkan untuk meningkatkan verbositas). Untuk kebaikan debugging lainnya, periksa man sshd .

Keuntungan utama dari metode ini adalah memungkinkan Anda untuk memeriksa sshd konfigurasi tanpa harus me-restart sshd pada port default. Biasanya ini seharusnya tidak mengganggu koneksi SSH yang ada, tetapi saya telah melihatnya. Jadi ini memungkinkan seseorang untuk memvalidasi file konfigurasi sebelum - berpotensi - memotong akses seseorang ke server jarak jauh (misalnya saya memilikinya untuk beberapa VPS dan bahkan untuk server fisik di mana saya perlu membayar ekstra untuk mendapatkan akses out-of-band ke mesin).


Anda juga dapat memiliki host yang memorinya sangat terfragmentasi sehingga tidak dapat mengalokasikan halaman memori yang berdekatan untuk melakukan proses hosting sesi SSH.

Dalam kasus seperti itu, Anda bisa mendapatkan salah satu pesan:

ssh_exchange_identification: read: Connection reset by peer

atau:

Connection closed by aaa.bbb.ccc.ddd

tergantung pada seberapa jauh tuan rumah mencapai sebelum ditebus.

Jika pemecahan memori adalah penyebab yang jelas, solusinya adalah mengakses server melalui cara lain dan me-restart beberapa layanan terkait. Saya telah menemukan Apache dan MySQL sebagai penyebab di VM karena VM tidak memiliki partisi swap. Jika gagal, reboot host.


Untuk berjaga-jaga, karena ini terjadi pada saya. Pastikan Anda menjalankan sshd di host!

Ini adalah kegagalan bodoh, tapi mungkin benar-benar menjadi masalah Anda.


Linux
  1. Cara Mengizinkan Koneksi Jarak Jauh ke Database PostgreSQL menggunakan psql

  2. Koneksi menggunakan SSH ke Host Tidak di DNS/host Berhenti Beberapa Saat Saat Inisiasi Koneksi

  3. Cara Menghubungkan Host Jarak Jauh Menggunakan Perintah ssh

  1. Kafka - Tidak dapat mengirim pesan ke server jauh menggunakan Java

  2. telnet gagal terhubung:Koneksi ditutup oleh host asing

  3. Utilitas baris perintah Linux untuk menyelesaikan nama host menggunakan /etc/hosts terlebih dahulu

  1. SSH ke host jarak jauh melalui proxy atau bastion dengan ProxyJump

  2. Ssh – Menggunakan Saluran Ssh yang Sudah Ada?

  3. Perintah Tidur Menggunakan Perintah Layar Tidak Ditampilkan Di Ps?