Perché visualizzo un errore "porta 22: connessione rifiutata"?


70

Sto ottenendo un

port 22: Connection refused 

errore durante la connessione a un server.

Ho installato sia il client openssh che il server e sono in esecuzione. Ma c'è ancora un errore. Per favore aiuto.


2
Solo per chiarire, il server openssh è installato sul server?
Kevin,

Controlla che ssh sia in esecuzione sulla porta 22 e se hai una regola firewall che blocca la porta.
Manula Waidyanatha,

1
Secondo me, configurare il firewall in modo tale da consentire a ssh (porta 22) che è attualmente bloccato dal firewall.
Ketan Patel,


Ciò potrebbe verificarsi probabilmente anche a causa della perdita temporanea della rete. Quindi controlla la tua connessione Internet.
user648610

Risposte:


78

Ho affrontato questo problema e finalmente ho ottenuto la risposta appropriata.

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

Quindi è entrato in raspi-configuna finestra del terminale e ha abilitato ssh.

Ciò consentirà di utilizzare la porta 22 per sshd.


Stesso problema qui come @SDsolar
Nadav B,

@Nadiv, ho dovuto usare anche raspi-config per abilitare ssh. La risposta è stata modificata per riflettere questo.
SDsolar,

Eseguite le prime tre righe su entrambi i computer e il file ora viene trasferito correttamente. Perché Ubuntu non viene fornito con questi installati / abilitati di default? L' connection refusederrore è così criptico, non avevo idea se si trattasse di problemi con il firewall, problema con il nome utente, problema con l'indirizzo IP, ecc. Molto frustrante.
Odio il

sudo ufw allow 22lavorato una volta. Ancora una volta l'errore ha iniziato a comparire.
Vineeshvs,

32

Mentre sul server, verifica che sshd sia effettivamente in esecuzione e sia in ascolto sulla porta 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       

Se non ottieni risultati o non mostrano che stai ascoltando su tcp 0.0.0.0:22 ... risolvilo.

Se si mostra che sshd è in esecuzione e è in ascolto sulla porta tcp 22, assicurarsi che non vi siano regole del firewall che si frappongono. Ancora una volta, sul server:

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

O alternativamente,

$ sudo ufw verbose
Status: active

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

Se vedi una regola come quella sopra, dovrai risolverla.

Se non vedi alcuna regola firewall e vedi il servizio in esecuzione sul server, allora è il momento di controllare la tua workstation e la rete a cui è connessa. Puoi connetterti ad altri server? Puoi eseguire il ping della tua interfaccia o indirizzo di loopback? Eccetera.


1
e se riesci a connetterti ad altri server?
opensourcechris

2
Ehi, grazie per la risposta, la mia non è la porta 22, è la 2222. Hai detto, aggiustalo, ma come?
Yogesh Darji,

Il mio non ha dato risultati.
SDsolar,

risolvilo con: sudo ufw allow 22(o qualunque sia la tua porta)
John D

netstat è obsoleto (e non installato di default nelle versioni più recenti di Ubuntu - Il comando 'netstat' non è stato trovato, ma può essere installato con ... ). Forse l'aggiornamento per iproute2 ?
Peter Mortensen,

14

Prova questo

sudo apt-get remove openssh-client openssh-server

e poi

sudo apt-get install openssh-client openssh-server

ha funzionato per me :)

Probabilmente non è la soluzione più ortodossa ... :)


3
L'uso di dpkg-reconfigure sarebbe più facile da usare al posto di una soluzione di disinstallazione / reinstallazione
Stephen Michael Kellat

1
Ho dovuto usare apt-get purge openssh-server (invece di rimuovere) per farlo funzionare.
11101101b,

6

Si è imbattuto nello stesso problema dopo aver installato Raspbian. Soluzione che ha funzionato per me:

sudo apt-get purge openssh-server
sudo apt-get install openssh-server

Se ha funzionato, è necessario aver modificato prima sshd-config.
Guntbert,

Ho modificato sshd_config su Raspbian mentre cercavo di installare ssh. Questa soluzione ha funzionato per me.
Scott,

+1. L'unica soluzione che ha funzionato!
Nadav B,

1

I seguenti comandi hanno funzionato per me:

cd /root/.ssh
vi known_hosts

Ora elimina tutto in quel file e inserisci sul terminale:

service sshd restart

Fonte: SSH - Connessione rifiutata


problema simile per me, ma ho eliminato i miei known_hosts ssh-keygen -f "/home/MYUSER/.ssh/known_hosts" -R MYHOST, sostituendo il mio utente Linux e l'host remoto a cui stavo cercando di connettermi
Chris

1

Questo potrebbe risolverlo anche per te. Prova la connessione al port forwarding 22 dal tuo indirizzo IP in uscita al tuo IP locale sulla stessa porta. Ha funzionato per me permettendomi di accedere a un computer Ubuntu remoto.


0

L'IP statico era sbagliato nel mio caso. Scoperto ping <my_ip>dopo aver cambiato il server. Stava ancora eseguendo il ping anche quando il server era spento. La modifica dell'IP ha risolto il problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.