Server Cygwin ssh tidak menerima koneksi


14

Saya baru saja menyiapkan server SSH (OpenSSH) pada mesin Windows 7 menggunakan cygwin dan saya mencoba untuk menyambungkannya menggunakan Putty pada mesin Windows Vista tetapi saya tetap mendapatkan Koneksi habis waktu. Saya telah memeriksa aktivitas jaringan pada mesin Win 7 dengan Wireshark dan menemukan bahwa saya menerima TCP SYN pada port 22 pada mesin Win 7, tetapi server ssh sepertinya tidak membalas. Saya telah memeriksa nomor port sshd yang dikonfigurasi untuk digunakan, memeriksa aturan firewall saya dan memverifikasi bahwa saya dapat ssh localhost (yang dapat saya lakukan dengan baik). Saya sama sekali tidak tahu bagaimana memecahkan masalah ini.


Anda mungkin harus memeriksa firewall Anda lagi, dan / atau menguraikan aspek ini.
jjlin

Jawaban:


23

Anda mungkin menjalankan Windows Firewall. Buka: Panel Kontrol -> Windows Firewall -> Izinkan program atau fitur melalui Windows Firewall

Klik tombol "Ubah pengaturan" lalu tombol "Izinkan program lain ...". SSHD mungkin tidak ada dalam daftar yang muncul, jadi gunakan tombol "Browse ..." untuk menemukan biner dan klik "Open" lalu "Add". Milik saya ada di C: \ cygwin \ usr \ sbin \ sshd.exe

Di suatu tempat di sana Anda dapat memutuskan "Jenis lokasi jaringan ..." mana yang ingin Anda gunakan. Saya meninggalkan milik saya dengan Private diperiksa dan publik tidak diperiksa. Saya sekarang bisa masuk dari jarak jauh.


Lebih jauh dari jawaban Frank , ketika saya menginstal VPN privasi pada komputer di jaringan rumah saya, saya melihat masalah yang sama. Itu karena dengan VPN komputer sekarang terhubung dengan sshd di jaringan publik. Untuk memperbaikinya, saya harus mengizinkan sshd melalui Windows Firewall untuk lokasi publik dan juga pribadi.
James Hirschorn

5

Apakah sshd_config Anda menetapkan ListenAddress sebagai 0.0.0.0 atau 127.0.0.1 ?

Jika 0.0.0.0 atau hanya berkomentar, maka Anda dapat terhubung dari luar mesin, yaitu dari komputer lain.

Jika 127.0.0.1 (atau nomor 127.0.0.x lainnya ), maka HANYA mendengarkan di LOCALHOST, dan Anda hanya dapat masuk dari mesin SAMA. Mesin eksternal ditolak.


2
Sudah dikomentari.
Surma

1

Setelah bermain-main dengan windows firewall tidak berpengaruh saya akhirnya menemukan saya harus mengizinkan koneksi ke subnet saya sendiri di Cygwin sendiri melalui file /etc/hosts.allow.

Baris ini (menggunakan subnet saya) sebagai aturan pertama memperbaiki masalah bagi saya.

ALL: 192.168.0.0/24: memungkinkan


1
Masalah dengan hosts.allow atau hosts.deny tidak akan menyebabkan waktu habis koneksi. Ini akan menyebabkan server SSH menerima koneksi, kemudian menjatuhkannya selama proses otentikasi.
Kenster

@Kenster hosts.allow dan hosts.deny bekerja pada level TCP. Anda tidak akan dapat terhubung ke server SSH karena Anda diblokir di lapisan 4, bahkan sebelum mencapai server SSH.
mtak

@ mtak Tidak, itu tidak benar. hosts.allow dan hosts.deny adalah file konfigurasi untuk TCP Wrappers . Program server (sshd dalam kasus ini) harus menerima koneksi TCP, mendapatkan alamat IP titik akhir jarak jauh, kemudian memanggil pembungkus TCP untuk melihat apakah klien harus diizinkan. Jika libwrap mengatakan tidak, maka server biasanya menjatuhkan koneksi.
Kenster

Lihat misalnya sshd.c . Cari ifdefs LIBWRAP. Berikut adalah fungsi hosts_access yang dipanggil oleh sshd. Saya juga akan mencatat bahwa versi terbaru dari sshd.c menghapus dukungan libwrap.
Kenster

@ Kenster, salahku, kau benar. Aku mencoba dan saya mendapatkan error berikut: ssh_exchange_identification: Connection closed by remote host. Selamat siang pada SU :)
mtak

1

Bagi saya masalahnya adalah kepemilikan /var/emptyfile yang salah. Masalahnya menjadi jelas setelah menempatkan sshd dalam mode debug dengan /usr/sbin/sshd.exe -D -dd. Saya harus memperbaikinya dengan:

chown [user]:[group] /var/empty

Pengguna dan grup diambil dari ls -la /vardirektori (hanya cocok dengan file lain). Lihat info lebih lanjut di sini: https://docs.oracle.com/cd/E24628_01/install.121/e22624/preinstall_req_cygwin_ssh.htm#EMBSC340


Terima kasih telah menunjukkansshd -D -dd
John Oxley

0

Pastikan Anda menang 7 Antivirus tidak memblokir port 22. Juga, buka panel layanan windows Anda dan cari CYGWINsshd dan aktifkan. setel logon untuk mencari dan mencentang kotak.

Itu akan memperbaiki masalah: user @ mymachine ~ $ net start sshd Kesalahan sistem 1069 telah terjadi.

Layanan tidak dimulai karena kegagalan masuk.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.