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-serverQuindi digita sudo password e, quando viene richiesta la conferma, premi 'y'. Una volta installato, confermalo usando lo stesso comando
$sudolista adatta--installato | presaopenssh-serverControlla 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:
$sudoserviziosshstatoSe 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:
$sudoserviziosshcominciarePer riavviare il servizio, utilizzare il seguente comando:
$sudoserviziosshricominciaControlla 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 | presasshdRiceverai 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/tcpAd 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 ricaricaPer confermare se le regole sono state aggiunte, controlla lo stato del firewall utilizzando il seguente comando in Terminale:
$sudostato ufwIl 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:
$sudoadattoinstallarearpeggiareQuindi 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.