ssh Sambungan ditolak: bagaimana cara mengatasi masalah?

17

Saya mencoba:

$ ssh eric@myserver

di mana myserverada mesin di intranet. Saya dapat melakukan ping myserveratau menanggapi HTTP pada port 8080, dll, tetapi ketika saya mencoba ssh, saya mengerti

ssh: connect to host myserver port 22: Connection refused

Saya menggunakan Ubuntu 10.

ps -ax, seperti yang disarankan memberi:

eric@Isaiah:~$ ps -ax | grep ssh
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
 1641 ?        Ss     0:04 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session gnome-session
18376 pts/3    S+     0:00 grep --color=auto ssh
Eric Wilson
sumber

Jawaban:

15

Anda tidak menjalankan daemon SSH. Jika Anda melihat output dari ps axperintah, Anda melihat bahwa hanya dua proses dengan 'ssh' dalam deskripsi adalah ssh-agent(yang melakukan sesuatu yang sama sekali berbeda darisshd ) dan grep sshproses yang Anda gunakan untuk memfilter output ps.

Bergantung pada distribusi apa yang diinstal, Anda mungkin perlu menginstal atau menjalankan sshserver, biasanya dipanggil openssh-serveratau sshdtergantung pada manajer paket Anda.

Shadur
sumber
13

Langkah-langkah untuk debugging masalah di atas:

  1. Gunakan nmapalat untuk mengetahui port mana yang terbuka di server itu. nmapadalah pemindai porta. Karena ada kemungkinan server ssh berjalan pada port yang berbeda. nmapakan memberi Anda daftar port yang terbuka.

     $ nmap myserver
    

2. Sekarang Anda dapat memeriksa server mana yang berjalan pada port yang diberikan. Misalkan dalam output nmap, port 2424 terbuka. Sekarang Anda dapat server mana yang berjalan pada 2424 dengan menggunakan alat nc (netcat).

 $ nc -v -nn myserver portno

Misalkan output dari port 2424 adalah:

myserver 2424 open
SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu5

Ini berarti ssh sedang berjalan pada 2424.

Terus ubah portno pada perintah di atas dan periksa semua port yang terdaftar terbuka oleh nmap.

pradeepchhetri
sumber
3

Itu berarti server ssh tidak berjalan di mesin itu atau firewall tidak memungkinkan ssh melaluinya. Anda dapat memeriksa apakah ssh sedang berjalan dengan 'ps -ax | grep ssh '.

David Schwartz
sumber
Pertanyaan yang diedit untuk menampilkan hasil ps -ax. Tidak yakin apa artinya.
Eric Wilson
1
Artinya sshtidak berjalan.
David Schwartz
1
Aneh. Saya tidak yakin mengapa Anda telah dua kali menawarkan bantuan yang tidak terlalu membantu. Pertama Anda menyarankan perintah yang berguna untuk memeriksa apakah ssh sedang berjalan, tanpa memberi tahu saya bagaimana menafsirkan hasil. Kemudian Anda memberikan interpretasi minimal dari hasil-hasil itu, tanpa petunjuk bagaimana Anda sampai pada interpretasi itu, atau tindakan apa yang mungkin sesuai. Saya tidak yakin apakah Anda mencoba untuk membantu saya, dan salah menilai tingkat pengalaman saya, atau jika Anda mencoba untuk menyoroti ketidaktahuan saya.
Eric Wilson
3
Daftar proses tidak termasuk sshdproses, yang berarti sshdtidak berjalan. Solusinya adalah mulai sshd.
David Schwartz
1

Dua opsi sebelumnya baik. Anda juga dapat menggunakan -vatau -vvargumen.

$ ssh -vv eric@myserver
frogstarr78
sumber
0

Saya menghadapi masalah ini juga, tetapi dalam lingkungan VirtualBox, jadi untuk menyelesaikannya kita perlu mengatur alamat IP agar berada di segmen LAN yang sama; sebagai contoh:

Di mesin host saya, saya buka cmddan ketik ipconfig. Saya mendapatkan 100.2.2.1 (misalnya).

Jadi di mesin virtual kita harus mengatur alamat VM /etc/hostske nilai seperti 100.2.2.3, lihat angka terakhir, dan pantulkan mesin virtual, tetapi sebelum memulai mesin virtual konfigurasikan jaringan dalam pengaturan virtual mesin, jadi kita perlu mengatur adaptor jaringan di koneksi jembatan.

Semua ini ada di lingkungan Solaris.

luis torres
sumber