SSH Server tidak menjawab permintaan koneksi

14

Saya mencoba mengatur server SSH pada mesin lokal saya menggunakan OpenSSH. Ketika saya mencoba SSH dari host jarak jauh ke server SSH lokal saya, server SSH tidak merespons dan permintaannya habis. Saya cukup yakin ada perbaikan yang sangat jelas untuk ini yang hanya saya abaikan.

Inilah yang terjadi ketika saya mencoba masuk SSH dari host jarak jauh:

yoshimi@robots:/$ ssh -vv [email protected]
OpenSSH_6.7p1 Debian-5, OpenSSL 1.0.1k 8 Jan 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 99.3.26.94 [99.3.26.94] port 22.
debug2: fd 3 setting O_NONBLOCK
debug1: connect to address 99.3.26.94 port 22: Connection timed out
ssh: connect to host 99.3.26.94 port 22: Connection timed out

Di mana robotsremote host saya, dan 99.3.26.94server SSH lokal saya.

SSH Sedang Berlari

volt@arnold:~$ ps -A | grep sshd
 5784 ?        00:00:00 sshd

Di mana arnoldserver SSH lokal saya.

Port Forwarding Diatur Di Router

Router rumah saya sudah diatur untuk meneruskan port 80 dan 22 ke server SSH saya. Menariknya, port 80 bekerja tanpa hambatan - langsung ke direktori web Apache. Port 22 - tidak begitu banyak.

NMap Mengatakan Itu Difilter

yoshimi@robots:/$ nmap -p 22 99.3.26.94

Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-02 14:45 EDT
Nmap scan report for 99-3-26-94.lightspeed.bcvloh.sbcglobal.net (99.3.26.94)
Host is up (0.33s latency).
PORT   STATE    SERVICE
22/tcp filtered ssh

Nmap done: 1 IP address (1 host up) scanned in 7.59 seconds

Di mana robotsremote host saya, dan 99.3.26.94server SSH lokal saya.

Ini Bukan IPTables (saya pikir)

volt@arnold:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
fail2ban-ssh  tcp  --  anywhere             anywhere             multiport dports ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain fail2ban-ssh (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere            

... Dan saya tidak memiliki firewall lain di tempatnya - ini adalah jaringan Debian yang relatif baru.

Jadi, lalu: Apa lagi itu? Tampaknya memang semacam firewall-y untuk mengabaikan lalu lintas, tetapi jika bukan router, itu bukan iptables, dan itu bukan firewall lain di server SSH, ... apa lagi yang ada ??

EDIT: Permintaan Koneksi dari Kesalahan Jaringan Internal

yoshimi@robots:/$ ssh [email protected]
ssh: connect to host 192.168.1.90 port 22: No route to host
kittykittybangbang
sumber
1
Sudahkah Anda mencoba SSH'ing dari komputer di belakang router (secara internal)? Juga, lihat ini .
saiarcot895
Terima kasih untuk bahan referensi, @ saiarcot895. Juga, lihat edit.
kittykittybangbang
Apa alamat ip komputer yang Anda coba lakukan di atas ^? Bisakah kamu ping itu?
111 ---
Pertama-tama periksa apakah sesuatu jika tidak mengambil alamat arping remotehostharus menjawab hanya satu alamat hw, kemudian periksa apakah hwaddress adalah sama. Kemudian periksa resolusi dengan dig remotehostdan dig -x remoteip, kemudian periksa apakah host jarak jauh tidak menunjuk ke 127.0.0.1, untuk pemeriksaan ini / etc / hosts remote. Dan akhirnya coba nonaktifkan firewall, dan periksa apakah proses ssh sedang berjalan.
elbarna
Mungkin juga membantu untuk tail -ffile log mana saja yang Anda sshd tunjuk untuk output. Jika benar-benar tidak ada apa-apa dalam log, kemungkinan besar masalah antara kedua perangkat, bukan pada server ssh.
0xSheepdog

Jawaban:

18

Jawaban-sendiri yang Sangat Mengecewakan

Setelah mengesampingkan masalah ini selama sehari dan kembali ke sana, saya merasa lega dan gelisah (lebih gelisah daripada lega) untuk menemukan bahwa semuanya, secara misterius, bekerja dengan baik.

Jadi, Apa Masalahnya?

Tidak ada pengaturan yang diubah atau disesuaikan - tidak pada router, tidak pada server SSH, dan tidak pada mesin klien SSH. Ini cukup aman untuk mengatakan itu adalah router tidak menangani lalu lintas yang masuk dengan benar, terlepas dari pengaturan yang tepat. Mengingat bahwa perangkat lunak router rumah mungil tidak benar - benar dirancang untuk berurusan dengan port forwarding, butuh orang miskin beberapa saat untuk mengimplementasikan perubahan yang diperlukan.

Tapi Sudah Seperti 6 Jam !!

Ya bung, aku tahu. Saya menghabiskan sepanjang hari untuk mencari tahu apa yang salah - dan tidak pernah menemukannya karena tidak ada yang salah. Jelas, itu bisa memakan waktu 6 jam - mungkin lebih - untuk pengaturan router berlaku.

Jadi Bagaimana Saya Tahu Jika Ini Masalah Saya?

Alat bagus yang saya temui selama petualangan ini adalah tcpdump. Si kecil yang ramping ini mengendus lalu lintas untuk Anda, menawarkan wawasan berharga tentang apa yang sebenarnya terjadi. Selain itu, ia memiliki beberapa fitur pemfilteran super yang memungkinkan Anda mempersempit apa yang ingin Anda lihat. Misalnya, perintahnya:

tcpdump -i wlan1 port 22 -n -Q inout

Menceritakan tcpdumpuntuk mencari lalu lintas melalui antarmuka wlan1 ( -i'antarmuka' =), hanya melalui port 22, mengabaikan resolusi DNS nama ( -n= 'tidak ada nama resolusi'), dan kami ingin melihat kedua lalu lintas masuk dan keluar ( -Qmenerima in, outatau inout; inoutadalah default).

Dengan menjalankan perintah ini di server SSH Anda saat mencoba terhubung melalui mesin jarak jauh, dengan cepat menjadi jelas di mana tepatnya masalahnya terletak. Ada, pada dasarnya, 3 kemungkinan:

  1. Jika Anda melihat lalu lintas masuk dari mesin jarak jauh, tetapi tidak ada lalu lintas keluar dari server lokal Anda, masalahnya ada pada server: mungkin ada aturan firewall yang perlu diubah, dll.
  2. Jika Anda melihat keduanya masuk dan keluar , tetapi mesin jarak jauh Anda tidak menerima respons, kemungkinan besar router: itu memungkinkan lalu lintas masuk, tetapi menjatuhkan paket keluar Anda.
  3. Jika tidak ada lalu lintas sama sekali , itu mungkin masalah router juga: SYNpaket mesin remote diabaikan dan dijatuhkan oleh router sebelum mereka bahkan mencapai server Anda.

Dan begitu Anda telah menemukan di mana masalahnya terletak, perbaikannya (biasanya) sepele.

kittykittybangbang
sumber
1
Saus Luar Biasa untuk "Jawaban Mengecewakan" Anda! Poin bonus untuk nama pengguna Anda .... Saya sudah melingkari ini untuk dua mesin di jaringan lokal yang sama! Ternyata Evil Bell Router adalah omong kosong! Ini memungkinkan saya untuk menghubungkan SEKALI saja. Kemudian, ketika saya mencoba untuk menyambung kembali itu menolak untuk merutekan saya! Aku bahkan bisa SSH dengan cara LAIN. Setidaknya sekali. Saya ingin tahu apakah itu tidak akan berhasil dalam beberapa jam juga ..
Richard Cooke
Wow, sudah mencabut rambut saya seharian penuh - sepertinya saya juga punya masalah 'Evil Bell Router'. @RichardCooke: apa solusi Anda?
John Doe
@ JohnDoe: Router yang diganti. Model Asus yang ada dalam daftar perangkat keras yang disetujui DD-WRT. Ada lebih banyak gangguan dan saya akan menginstal DD-WRT!
Richard Cooke
3

Saya menjalankan Mint (Ubuntu).

Saya telah melakukan segalanya ... kunci publik dalam format yang benar di otor_keys, chmodding, chowning, restart ssh dan sshd dll. Seperti yang telah didokumentasikan di semua tempat.

Bagi saya, itu adalah ufw firewall. Kurangnya respons ssh sama sekali memberi saya tip untuk ini, namun saya bisa ping tidak ada masalah kedua cara pada LAN.

Saya diuji oleh:

sudo ufw service stop

... dan itu bekerja dengan sempurna, yaitu saya mendapat respons dari panggilan ssh.

Jadi, mulai ufw lagi:

sudo ufw service start

... dan tambahkan aturan:

sudo ufw allow openssh

Semua bekerja dengan baik sekarang.

Bux Fiddy
sumber
Ini ( ufw) menyelesaikan masalah saya di Ubuntu 16.04. Saya telah mengikuti instruksi instalasi Jenkins secara membabi buta dan mengaktifkan ufwprosesnya. Setelah menonaktifkannya, sshd bekerja kembali.
Penghe Geng
1

Jika Anda, seperti saya, telah mengaktifkan UFW (di Linux, Ubuntu dalam kasus saya), coba ini:

sudo ufw enable OpenSSH

Ini akan memungkinkan OpenSSH di firewall.

uranibaba
sumber
1
Saya baru saja mengunci diri, dan saya merasa sangat bodoh. Tapi itu sebenarnya.
martpie
0

Hanya untuk orang lain:

Saya harus menggunakan opsi -P di tcpdump bukan -Q

tcpdump -i wlan1 port 22 -n -P inout
Esel
sumber
Saya akan menghapus ini jika Anda mengidentifikasi nama / versi distro yang Anda gunakan.
Richard Cooke
0

Sebagian besar waktu firewall adalah pelakunya. Lakukan service iptables stopdanservice ip6tables stop .

Jika layanan berhenti tidak berfungsi, maka lakukan iptable flush.

iptables --flush.

Jika itu VM maka lakukan hal yang sama di host juga

Vijay SB
sumber