I lettori come te aiutano a sostenere MUO. Quando effettui un acquisto utilizzando i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Per saperne di più.

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. Controlla se è installato un server SSH

Una possibile causa dell'errore "connessione rifiutata" è che il computer remoto non è in esecuzione 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:

instagram viewer

Nelle distribuzioni basate su Debian:

dpkg --elenco | grep ssh

Nelle distribuzioni basate su RHEL:

elenco yum installato | grep ssh

Su openSUSE:

zypper ricerca -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. Altrimenti, devi installare il server OpenSSH sulla macchina remota 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 apresh

2. Controlla 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 di simile inattivo (morto).

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 abilita sshd

3. Controlla 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 usa il comando netstat con grep per trovare la porta su cui è in ascolto il server SSH:

sudo netstat -plntu | grep ssh

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

porta grep /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 disabilita

Nelle distribuzioni basate su RHEL e openSUSE:

sudo systemctl disabilita 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 comando seguente per consentire l'accesso a SSH il firewall dell'UFW:

sudo ufw consenti 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 consenti 5555

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

stato sudo ufw

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. Risolvi i conflitti di indirizzi IP

Esiste anche la possibilità che si verifichi l'errore "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, risultando in un conflitto IP.

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

arp-scan [id-rete]

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

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 il file -vvv opzione come segue:

ssh -vvv nomeutente@indirizzo_ip

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.