Mengapa saya menerima pesan kesalahan "port 22: Koneksi ditolak"?

70

Saya mendapatkan

port 22: Connection refused 

kesalahan saat menyambung ke server.

Saya memiliki klien openssh dan server diinstal, dan mereka sedang berjalan. Namun masih ada kesalahan. Tolong bantu.

pergelangan kaki
sumber
2
Hanya untuk memperjelas, apakah server openssh diinstal pada server?
Kevin
Periksa ssh sedang berjalan pada port 22 dan jika Anda memiliki aturan firewall yang memblokir port.
Manula Waidyanatha
1
Menurut saya, Konfigurasikan firewall sedemikian sehingga memungkinkan untuk ssh (port 22) yang saat ini diblokir oleh firewall.
Ketan Patel
Ini bisa terjadi mungkin karena kehilangan jaringan sementara juga. Jadi, periksa koneksi internet Anda.
user648610

Jawaban:

78

Saya melewati masalah ini dan akhirnya mendapat jawaban yang tepat.

sudo apt-get update
sudo apt-get install openssh-server
sudo ufw allow 22

Kemudian masuk ke raspi-configjendela terminal dan mengaktifkan ssh.

Ini akan memungkinkan port 22 digunakan untuk sshd.

Doogle
sumber
Masalah yang sama di sini sebagai @SDsolar
Nadav B
@Nadiv, saya juga harus menggunakan raspi-config untuk mengaktifkan ssh. Jawaban telah diedit untuk mencerminkan hal ini.
SDsolar
Dilakukan tiga baris pertama pada kedua komputer dan file sekarang berhasil ditransfer. Mengapa Ubuntu tidak dilengkapi dengan ini diinstal / diaktifkan secara default? The connection refusedkesalahan sehingga samar, aku tidak tahu jika itu adalah masalah firewall, username masalah, masalah alamat IP, dll dll Sangat frustasi.
Hatefiend
sudo ufw allow 22pernah bekerja. Sekali lagi kesalahan mulai muncul.
vineeshvs
32

Saat berada di server, periksa untuk memastikan sshd benar-benar berjalan, dan mendengarkan pada port 22:

$ sudo netstat -anp | grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1538/sshd       
tcp6       0      0 :::22                   :::*                    LISTEN      1538/sshd       

Jika Anda tidak mendapatkan hasil, atau mereka tidak menunjukkan Anda mendengarkan di tcp 0.0.0.0:22 ... perbaiki.

Jika Anda DO menunjukkan bahwa sshd sedang berjalan dan mendengarkan di tcp port 22, periksa untuk memastikan tidak ada aturan firewall yang menghalangi. Sekali lagi, di server:

$ sudo iptables -L | grep ssh
DROP       tcp  --  anywhere             anywhere            tcp dpt:ssh 

Atau bergantian,

$ sudo ufw verbose
Status: active

To                         Action      From
--                         ------      ----
22                         DENY        Anywhere
22/tcp                     DENY        Anywhere

Jika Anda melihat aturan seperti yang ada di atas, Anda harus memperbaikinya.

Jika Anda tidak melihat aturan firewall yang menghalangi dan Anda melihat layanan berjalan di server, maka inilah saatnya untuk memeriksa workstation Anda, dan jaringan yang terhubung dengannya. Bisakah Anda terhubung ke server lain? Bisakah Anda melakukan ping antarmuka atau alamat loopback Anda sendiri? Dll

Jim Salter
sumber
1
dan jika Anda dapat terhubung ke server lain?
opensourcechris
2
Hai terima kasih atas jawabannya, milik saya bukan port 22, ini 2222. Anda bilang, perbaiki itu, tapi bagaimana?
Yogesh Darji
Milik saya tidak memberikan hasil.
SDsolar
perbaiki dengan: sudo ufw allow 22(atau apa pun port Anda)
John D
netstat sudah usang (dan tidak diinstal secara default di versi Ubuntu yang lebih baru - Perintah 'netstat' tidak ditemukan, tetapi dapat diinstal dengan ... ). Mungkin memperbarui untuk iproute2 ?
Peter Mortensen
14

Coba ini

sudo apt-get remove openssh-client openssh-server

lalu

sudo apt-get install openssh-client openssh-server

itu bekerja untuk saya :)

Mungkin bukan solusi yang paling ortodoks ... :)

PJunior
sumber
3
Menggunakan dpkg-reconfigure akan lebih mudah digunakan sebagai pengganti solusi uninstall / instal ulang
Stephen Michael Kellat
1
Saya harus menggunakan apt-get purs openssh-server (bukan menghapus) untuk membuatnya berfungsi.
11101101b
6

Datang di masalah yang sama setelah menginstal Raspbian. Solusi yang berhasil untuk saya:

sudo apt-get purge openssh-server
sudo apt-get install openssh-server
Wouter
sumber
Jika ini berhasil, Anda harus mengubah sshd-config Anda sebelumnya.
guntbert
Saya mengedit sshd_config di Raspbian saat mencoba mengatur ssh. Solusi ini berhasil untuk saya.
Scott
+1. Hanya solusi yang berhasil!
Nadav B
1

Perintah berikut ini bekerja untuk saya:

cd /root/.ssh
vi known_hosts

Sekarang hapus semua yang ada di file itu dan masukkan di terminal:

service sshd restart

Sumber: SSH - Koneksi Ditolak

Sruthil Lal SB
sumber
masalah yang sama untuk saya, tapi saya membersihkan ssh-keygen -f "/home/MYUSER/.ssh/known_hosts" -R MYHOSThosting yang dikenal dengan saya , menggantikan pengguna linux dan host jarak jauh yang saya coba sambungkan
Chris
1

Ini mungkin memperbaikinya untuk Anda juga. Coba koneksi penerusan port 22 dari alamat IP keluar Anda ke IP lokal Anda pada port yang sama. Bekerja untuk saya yang memungkinkan saya untuk ssh in ke komputer ubuntu jarak jauh.

jackw11111
sumber
0

IP statis salah dalam kasus saya. Ditemukan dengan melakukan ping <my_ip>setelah beralih dari server. Itu masih ping bahkan ketika server dimatikan. Mengubah IP memecahkan masalah.

anggur
sumber