Come correggere l’errore “Connessione rifiutata” SSH su Linux

Come correggere l’errore “Connessione rifiutata” SSH su Linux

SSH è un protocollo di rete che consente di accedere e gestire in modo sicuro un sistema remoto su una rete. Durante la connessione a una macchina remota tramite SSH, potresti aver riscontrato l’errore “connessione rifiutata”. Sperimentare questo problema può essere frustrante soprattutto se sei un amministratore di sistema e devi eseguire alcune attività sul sistema remoto con urgenza.

Diamo un’occhiata ad alcune delle possibili cause dell’errore di “connessione rifiutata” SSH e ai metodi per risolverlo.

1. Verificare se è installato un server SSH

Una possibile causa dell’errore “connessione rifiutata” è che la macchina remota non sta eseguendo un server SSH. Senza il server SSH, la macchina non accetterà connessioni SSH in entrata e non sarà possibile accedervi da remoto.

Quindi il primo passo per risolvere l’errore è verificare se un server SSH è installato sul computer remoto. Utilizzare il seguente comando per verificare l’installazione del server SSH:

Nelle distribuzioni basate su Debian:

dpkg --list | grep ssh

Nelle distribuzioni basate su RHEL:

yum list installed | grep ssh

Su openSUSE:

zypper search -i | grep ssh

Nelle distribuzioni basate su Arch:

pacman -Q | grep ssh

Se il server SSH è installato sulla macchina remota, lo vedrai elencato nell’output. In caso contrario, è necessario installare il server OpenSSH sulla macchina remota a cui si desidera accedere tramite SSH. OpenSSH è una versione open source degli strumenti SSH per l’accesso remoto e il controllo dei sistemi.

Per installare il server OpenSSH, utilizzare i seguenti comandi:

Nelle distribuzioni basate su Debian:

sudo apt install openssh-server

Nelle distribuzioni basate su RHEL:

sudo yum install openssh-server

Su openSUSE:

sudo zypper install openssh

Nelle distribuzioni basate su Arch:

pacman -S openssh

2. Controllare lo stato del servizio SSH

Un altro motivo per ottenere l’errore “connessione rifiutata” può essere che il servizio SSH è disabilitato o non è in esecuzione sul computer remoto. Una volta che sei sicuro che il server SSH sia installato, la seconda cosa che devi controllare è lo stato del server.

sudo systemctl status sshd

Se il servizio è attivo e in esecuzione, l’output lo indicherà come attivo (in esecuzione) . Altrimenti, vedrai qualcosa come inactive (dead) .

stato del server SSH

Se il server SSH non è in esecuzione, puoi avviarlo manualmente utilizzando il seguente comando:

sudo systemctl start sshd

Puoi anche abilitare l’avvio automatico del servizio all’avvio con:

sudo systemctl enable sshd

3. Controllare la porta SSH

Per impostazione predefinita, il server SSH viene eseguito sulla porta 22. Tuttavia, è possibile modificare la porta predefinita. Pertanto, se ricevi l’errore SSH “connessione rifiutata”, potrebbe essere perché stai tentando di connetterti al server SSH sulla porta predefinita 22 mentre è in esecuzione su una porta diversa.

Puoi utilizzare il comando netstat con grep per trovare la porta su cui è in ascolto il server SSH:

sudo netstat -plntu | grep ssh

controlla la porta ssh

Puoi anche trovare la porta SSH dal file sshd_config usando il seguente comando:

grep port /etc/ssh/sshd_config

Dopo aver identificato la porta SSH corretta, prova a connetterti al tuo sistema remoto utilizzando quella porta specifica.

4. Controlla il tuo firewall di sistema

La maggior parte dei problemi di connettività si verifica a causa del blocco di alcune porte o servizi da parte del firewall del computer. Se la macchina remota ha il server SSH installato e in esecuzione, il passaggio successivo consiste nel controllare il firewall.

Per capire se il firewall sta bloccando la connessione, disabilita temporaneamente il firewall usando i seguenti comandi:

Nelle distribuzioni Linux basate su Debian e Arch:

sudo ufw disable

Nelle distribuzioni basate su RHEL e openSUSE:

sudo systemctl disable firewalld

Se l’errore non viene visualizzato dopo aver disabilitato il firewall, significa che il firewall stava bloccando la connessione. In questo caso, riattiva il firewall e aggiungi una regola che consenta SSH.

Nelle distribuzioni Linux basate su Debian e Arch, utilizzare il seguente comando per consentire SSH nel firewall UFW:

sudo ufw allow ssh

In alternativa, puoi anche consentire SSH tramite il numero di porta nel firewall. Supponiamo che il server SSH utilizzi la porta 5555, quindi dovresti utilizzare il seguente comando per consentirlo nel firewall:

sudo ufw allow 5555

Per verificare se la regola è stata aggiunta correttamente, controlla lo stato UFW:

sudo ufw status

Nelle distribuzioni basate su RHEL e openSUSE, utilizzare il seguente comando per consentire SSH nel firewall:

sudo firewall-cmd --permanent --add-service=ssh

Per consentire SSH per numero di porta, utilizzare il seguente comando:

sudo firewall-cmd --permanent --add-port={port}/tcp

Per un server SSH in esecuzione sulla porta 4444, il comando sarebbe:

sudo firewall-cmd --permanent --add-port=4444/tcp

Per verificare l’avvenuta aggiunta della regola nel firewall, eseguire:

sudo firewall-cmd --list-all

5. Risolvere i conflitti di indirizzi IP

Esiste anche la possibilità che si verifichi l’errore di “connessione rifiutata” SSH a causa del conflitto tra l’IP del server SSH e l’IP di un altro sistema nella rete. Ciò accade quando due sistemi su una rete affermano di avere lo stesso indirizzo IP, provocando un conflitto IP.

Per confermare se c’è un conflitto IP nella tua rete, usa lo strumento arp-scan come segue:

arp-scan [network-id]

Se c’è un conflitto IP, vedrai l’indirizzo IP duplicato nell’output. Lo screenshot seguente è un esempio di un conflitto IP in una rete:

usando arp-scan per trovare ip duplicati

Per evitare conflitti IP, assicurarsi che nessun dispositivo disponga di indirizzi IP statici che si sovrappongono agli indirizzi del pool DHCP.

Suggerimento bonus: esegui SSH in modalità dettagliata

Ogni volta che riscontri un errore SSH, prova a eseguire il comando ssh in modalità dettagliata per rintracciare il problema. Per eseguire SSH in modalità dettagliata, utilizzare il comando ssh con l’ opzione -vvv come segue:

ssh -vvv username@ip_address

ssh debug

In modalità dettagliata, vedrai messaggi di debug in ogni passaggio della connessione che ti aiuteranno a capire dove si trova il problema.

Risoluzione dei problemi relativi all’errore “Connessione rifiutata” SSH su Linux

Identificando le potenziali cause dell’errore di connettività SSH e implementando le soluzioni suggerite, sarai in grado di individuare e risolvere l’errore di “connessione rifiutata” SSH. Oltre a questi passaggi, assicurati di connetterti all’indirizzo IP corretto e di utilizzare le credenziali di accesso corrette.

Per rendere la tua connessione remota più sicura, puoi configurare l’autenticazione a due fattori per SSH su Linux.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *