Saya tidak menggunakan hosts.allow
atau hosts.deny
, lebih jauh lagi SSH bekerja dari mesin windows saya (laptop yang sama, hard drive yang berbeda) tetapi bukan mesin Linux saya.
ssh -vvv root@host -p port
memberi:
OpenSSH_6.6, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 20: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to host [host] port <port>.
debug1: Connection established.
debug1: identity file /home/torxed/.ssh/id_dsa type -1
debug1: identity file /home/torxed/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6
ssh_exchange_identification: read: Connection reset by peer
Pada mesin windows semuanya berfungsi dengan baik, jadi saya memeriksa log keamanan dan garis-garis di sana identik, server memperlakukan dua "mesin" yang berbeda tidak berbeda dan keduanya diizinkan melalui otentikasi kunci publik ..
Jadi itu mengarah pada kesimpulan bahwa ini harus menjadi masalah dengan laptop ArchLinux lokal saya .. tapi apa?
[torxed@archie ~]$ cat .ssh/known_hosts
[torxed@archie ~]$
Jadi bukan itu masalahnya ..
[torxed@archie ~]$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Tidak ada konflik dengan pengaturan firewall (untuk saat ini) ..
[torxed@archie ~]$ ls -la .ssh/
total 20
drwx------ 2 torxed users 4096 Sep 3 2013 .
drwx------ 51 torxed users 4096 May 11 11:11 ..
-rw------- 1 torxed users 1679 Sep 3 2013 id_rsa
-rw-r--r-- 1 torxed users 403 Sep 3 2013 id_rsa.pub
-rw-r--r-- 1 torxed users 170 May 11 11:21 known_hosts
Izin tampaknya baik-baik saja (sama pada server) .. Juga mencoba tanpa mengkonfigurasi /etc/ssh/ssh_config
dengan hasil yang sama kecuali untuk banyak konfigurasi otomatis yang terjadi pada klien yang berakhir dengan kesalahan yang sama.
sumber
iptables-save|grep -v '^#'
, itu akan termasuk tabel lain (misalnyanat
danmangle
). Jika kosong, sebutkan saja.iptables
Output Anda di atas secara default terbatas padafilter
tabel. Juga, pada server SSH jalankan SSH pada port alternatif seperti ini dan berikan output debug.ip6tables-save
)?Jawaban:
Jika Anda telah mengesampingkan faktor "eksternal" apa pun, serangkaian langkah berikut biasanya membantu mempersempitnya. Jadi, meskipun ini tidak langsung menjawab pertanyaan Anda, mungkin membantu melacak penyebab kesalahan.
Penyelesaian masalah
sshd
Apa yang saya temukan secara umum sangat berguna dalam kasus-kasus seperti itu adalah memulai
sshd
tanpa membiarkannya melakukan dasmon. Masalah dalam kasus saya adalah keduanyasyslog
tidakauth.log
menunjukkan sesuatu yang berarti.Ketika saya memulainya dari terminal saya mendapat:
Jauh lebih baik! Pesan kesalahan ini memungkinkan saya untuk melihat apa yang salah dan memperbaikinya. File log tidak berisi output ini.
NB: setidaknya di Ubuntu itu
$(which sshd)
adalah metode terbaik untuk memenuhisshd
persyaratan jalur absolut. Jika tidak, Anda akan mendapatkan error berikut:sshd re-exec requires execution with an absolute path
. The-p 10222
makesshd
mendengarkan pada port alternatif itu, mengesampingkan file konfigurasi - ini agar tidak berbenturan dengansshd
instance yang berpotensi berjalan . Pastikan untuk memilih port gratis di sini.Akhirnya: sambungkan ke port alternatif (
ssh -p 10222 user@server
).Metode ini telah membantu saya berkali-kali dalam menemukan masalah, baik itu masalah otentikasi atau jenis lainnya. Untuk mendapatkan output yang benar-benar verbose
stdout
, gunakan$(which sshd) -Ddddp 10222
(perhatikan yang ditambahkandd
untuk meningkatkan verbositas). Untuk lebih banyak memeriksa kebaikan debuggingman sshd
.sumber
Anda juga dapat memiliki host yang memorinya sangat terfragmentasi sehingga tidak dapat mengalokasikan satu halaman memori yang berdekatan untuk melakukan proses hosting sesi SSH.
Dalam kasus seperti itu, Anda bisa mendapatkan salah satu pesan:
atau:
tergantung pada seberapa jauh tuan rumah mendapat sebelum menebus.
Jika fragmentasi memori adalah penyebab nyata, solusinya adalah mengakses server melalui cara lain dan untuk me-restart beberapa layanan terkait. Saya telah menemukan Apache dan MySQL menjadi penyebab di VM sejak VM tidak memiliki partisi swap. Jika gagal, reboot host.
sumber
Untuk jaga-jaga, karena ini terjadi pada saya. Pastikan Anda menjalankan sshd di host!
Ini kegagalan yang bodoh, tetapi mungkin benar-benar menjadi masalah Anda.
sumber
sshd
tidak berjalan koneksi tidak akan ditutup tetapi ditolak (cobassh -p someportwithoutsshd localhost
).Saya menemukan bahwa kesalahan ini disebabkan oleh melebihi sesi ssh ke server. Saya menemukan host mencoba untuk terhubung dan membunuh semua sesi dari semua klien. Masalah terpecahkan setelah menyelesaikan semua sesi.
sumber
who
dan mematikan proses pengguna.Saya menemukan
ssh_exchange_identification: read: Connection reset by peer
masalah dalam skrip yang memulai 16 sesi ssh atau lebih dalam satu lingkaran. sshd tampaknya tidak bisa mengikuti; menambahkan tidur singkat memecahkan masalah saya:sumber
Atau Anda mungkin telah melakukan apa yang saya lakukan, tadi malam, dan menghapus / var / kosong. Tampaknya direktori dan izinnya sangat penting untuk berfungsinya sshd dan itu tidak akan membuat ulang direktori ketika direstart
/etc/init.d/sshd
akan gagal untuk me-restart dan tidak ada systemd yang akan memberi tahu Anda alasannya.Saya menemukan masalah dengan menjalankan sshd di latar depan:
Membangun kembali direktori memecahkan masalah dalam kasus saya:
Catatan untuk programmer Linux: Hal-hal penting dalam
/var/empty
... sungguh ???sumber
ls -ld /var/empty
→ls: cannot access '/var/empty': No such file or directory
. Jadi, setidaknya satu distribusi telah menyelesaikan ini sepenuhnya. Melihat/etc/init.d/sshd
skrip, tampaknya pada Debian, setidaknya, direktori pemisahan hak istimewa sekarang/var/run/sshd
dan dibuat pada saat start-up jika belum ada.Saya mendapatkan kesalahan
ssh_exchange_identification: Connection closed by remote host
ketika mencoba terhubung ke SSH: Saya melakukan penerusan port jarak jauh untuk port SSH 22 dari komputer lokal saya sehingga saya dapat mengaksesnya sementara dari server jauh di Internet.Bahkan kesalahan hanya ditampilkan karena saya tidak ingat bahwa saya dinonaktifkan layanan SSH pada startup jadi aku harus memulai layanan SSH di komputer lokal saya:
sudo service ssh start
.sumber
Hal pertama yang pertama; telnet ke alamat IP host untuk memverifikasi apakah port 22 benar-benar mendengarkan (dibuka) pada host itu:
(jika tidak, maka Anda dapat memasang kabel konsol untuk masuk)
Dalam kasus saya, itu tidak berfungsi dan saya memasang kabel konsol untuk login. Setelah saya masuk, saya menemukan bahwa semua 5 jalur VTY sibuk pada host itu (router Cisco).
Saya membersihkan koneksi lama yang tergantung di sana untuk membebaskan jalur VTY, itu berhasil. Saya menambahkan perintah "exec-timeout 15" di bawah garis VTY. Lalu saya lepaskan kabel konsol.
Pelajaran:
Pastikan untuk menetapkan batas waktu 5-10 menit pada semua perangkat Anda - (jika tidak ada aktivitas yang terdeteksi).
sumber
Kasus saya keliru mengatur soket proksi (yang tidak berfungsi). Saya mendapat keluaran ssh -vvv yang sama persis dan log sshd kosong.
sumber
Kesalahan
ssh_exchange_identification: Connection closed by remote host
dapat terjadi karena beberapa alasan yang tidak diketahui. Ketika saya menggunakan kode Visual Studio . Kesalahan yang sama terjadi ketika saya mencoba menarik dari repo jarak jauh menggunakangit pull
perintah.Saya baru saja menutup terminal tertanam dan membuka terminal Ubuntu dan menarik lagi. Dan itu berhasil
sumber
Dari dengan
CentOS Linux release 7.4.1708 (Core)
denganOpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
koneksi tidak menyaring port saya punya:Dan ternyata Raspberry Pi saya tidak aktif!
Saya berpikir bahwa sebuah host yang tidak dihidupkan akan menghasilkan kesalahan "Tidak ada rute ke host". Raspberry Pi ada di belakang router ISP saya jadi mungkin itu yang menutup koneksi.
Kemudian saya mengulangi percobaan (mencoba koneksi ke Raspberry Pi yang dimatikan) dari koneksi internet lain juga tidak menyaring port dengan Debian Stretch dengan
OpenSSH_7.4p1 Debian-10+deb9u3, OpenSSL 1.0.2l 25 May 2017
dan kali ini saya memiliki yang diharapkan:sumber