Come risolvere: connessione rifiutata dalla porta 22 Debian/Ubuntu

How Fix Connection Refused Port 22 Debian Ubuntu

SSH fornisce un modo sicuro per accedere e gestire i server Linux. A volte durante la connessione ai server SSH, gli utenti riscontrano spesso un errore di connessione rifiutata tramite la porta 22. Succede a causa di diversi motivi come il servizio SSH non è in esecuzione, la porta è bloccata dal firewall o il server utilizza una porta diversa. Può anche verificarsi a causa del problema del conflitto IP. In questo articolo, discuteremo alcune delle soluzioni che dovresti provare per correggere l'errore.

Nota: I comandi discussi qui sono stati testati su Ubuntu 20.04 LTS. Gli stessi comandi sono validi anche per il sistema Debian.



Correggi l'errore di connessione rifiutata

Questo è l'errore di connessione rifiutata che potresti riscontrare durante la connessione a un sistema remoto tramite SSH.





Seguire le soluzioni seguenti passo dopo passo per risolvere l'errore Connessione rifiutata.

Assicurati che OpenSSH sia installato

Uno dei motivi per cui potresti ricevere un errore di connessione rifiutata è perché il server OpenSSH non è installato sul server di destinazione.

Innanzitutto, dovrai assicurarti che il server OpenSSH sia installato sul sistema a cui stai tentando di accedere tramite SSH. Per verificare se OpenSSH è installato o meno, emettere il seguente comando nel Terminale del server di destinazione:



$sudolista adatta--installato | presaopenssh-server

Questo comando fondamentalmente filtra il termine openssh-server dall'elenco dei pacchetti installati. Se ricevi il seguente output simile, indica che il server OpenSSH è installato. D'altra parte, se non si riceve alcun output, significa che OpenSSH è mancante sul server di destinazione.

Nel caso in cui non sia installato sul server di destinazione, è possibile installarlo utilizzando il seguente comando come sudo:

$sudoadattoinstallareopenssh-server

Quindi digita sudo password e, quando viene richiesta la conferma, premi 'y'. Una volta installato, confermalo usando lo stesso comando

$sudolista adatta--installato | presaopenssh-server

Controlla il servizio SSH

Il servizio OpenSSH viene eseguito in background e ascolta le connessioni in entrata. Il servizio OpenSSH interrotto può essere uno dei motivi per cui ricevi un errore di connessione rifiutata.

Pertanto, è necessario verificare se il servizio OpenSSH è in esecuzione o meno utilizzando il seguente comando in Terminale:

$sudoserviziosshstato

Se vedi il seguente output, significa che il servizio è attivo e in esecuzione in background.

D'altra parte, se ricevi inattivo (morto), ciò significa che il servizio non è in esecuzione . Puoi eseguire il servizio OpenSSH usando il seguente comando come sudo in Terminale:

$sudoserviziosshcominciare

Per riavviare il servizio, utilizzare il seguente comando:

$sudoserviziosshricomincia

Controlla la porta di ascolto del server SSH

Un altro motivo per ricevere un errore di connessione rifiutata è perché si sta tentando di connettersi alla porta sbagliata. Ad esempio, se il server è configurato per l'ascolto sulla porta 2244 e stai tentando di connetterti alla sua porta predefinita 22, in questo caso riceverai un errore di connessione rifiutata.

Prima di provare a connetterti, devi controllare la porta di ascolto del server SSH. Se è la porta predefinita (22), puoi collegarla usando il seguente comando:

$ssh [nome utente]@[IP del server remoto oNome host]

Se si tratta di una porta diversa da quella predefinita, dovrai connetterti al server SSH utilizzando questa porta:

$ssh -P [numero di porta] [nome utente]@[indirizzo IP]

Per verificare su quale porta è in ascolto il server OpenSSH; usa il seguente comando in Terminale:

$sudo netstat -ltnp | presasshd

Riceverai un output simile al seguente:

Nella terza colonna, puoi vedere che la porta di ascolto del server è 2244. In questo caso, dovrai connetterti al server SSH utilizzando questa porta.

$ssh -P [2244] [nome utente]@[indirizzo IP]

Consenti SSH nel firewall

Il firewall che blocca la porta SSH può essere un altro dei motivi principali per l'errore Connessione rifiutata. Se sul server SSH è in esecuzione un firewall, sarà necessario consentire la porta SSH utilizzando il seguente comando. Sostituisci il porta dal numero di porta su cui il server SSH è in ascolto:

$sudoufw consenti porta/tcp

Ad esempio, se il server SSH è in ascolto sulla porta 2244, puoi consentirlo nel firewall come:

$sudoufw consentire2244/tcp

Ricarica il firewall usando il seguente comando:

$sudoufw ricarica

Per confermare se le regole sono state aggiunte, controlla lo stato del firewall utilizzando il seguente comando in Terminale:

$sudostato ufw

Il seguente output mostra che la porta 2244 è consentita nel firewall.

Risolvi il conflitto di indirizzi IP duplicati

L'errore Connessione rifiutata può verificarsi anche a causa di un conflitto di indirizzi IP duplicati. Quindi, assicurati che il sistema non abbia un indirizzo IP duplicato.

Installa l'utility arping sul tuo sistema usando il seguente comando:

$sudoadattoinstallarearpeggiare

Quindi eseguire il ping dell'indirizzo IP del server SSH.

$ping <indirizzo IP>

Nell'output, se vedi la risposta da più di un indirizzo MAC, allora mostra che c'è un IP duplicato in esecuzione sul sistema. In tal caso, modificare l'indirizzo IP del server SSH e riprovare a connettersi con il nuovo indirizzo IP.

Ecco come correggere l'errore Connessione rifiutata tramite la porta 22 nei sistemi Linux. In questo articolo, abbiamo descritto alcuni modi che ti aiuteranno sicuramente a risolvere l'errore Connessione rifiutata.