Introduzione
L'errore "Connection Refused" significa che il computer non accetta richieste di connessione all'indirizzo IP e alla porta richiesti. Le richieste di connessione possono essere bloccate da un firewall, motivo per cui viene visualizzato "Connection refused".
Quando un computer riceve una richiesta di connessione da un indirizzo IP e da una porta a cui desidera connettersi, ma il firewall blocca la connessione, viene visualizzato il messaggio di errore "Connessione rifiutata" (Connection refused). "Connessione rifiutata" può essere dovuto a un firewall che blocca le richieste di connessione. In alcuni casi, nessuno dei servizi è in ascolto sulla porta richiesta causa anche l'errore "Connessione rifiutata".
Il problema
Potresti riscontrare un errore "Port 22: Connection refused" durante la connessione SSH a questo sistema. Potresti renderti conto che non esiste un server SSH in esecuzione sul sistema appena installato.
Come risolvere l'errore "Port 22: Connection refused".
Ci sono 4 motivi comuni dietro questo errore. Uno o più dei seguenti motivi possono essere la causa dell'errore:
- Il server SSH non è installato
- Il servizio SSH non è attivo
- Il servizio SSH è in esecuzione su una porta diversa
- La porta SSH è bloccata dal firewall
Discutiamo tutte le possibili soluzioni una per una.
1. Il server SSH non è installato
OpenSSH viene utilizzato per il servizio SSH su sistemi basati su Debian. Alcuni dei sistemi appena installati potrebbero non avere il demone SSH. Molto probabilmente, quando installi un nuovo sistema desktop, i pacchetti OpenSSH non sono inclusi per impostazione predefinita.
Puoi eseguire i seguenti comandi per installare il servizio ssh sul tuo sistema:
sudo apt udpate && sudo apt install openssh-server
Al termine dell'installazione, puoi connetterti al tuo sistema sulla porta 22. Se i problemi persistono, verifica per altri motivi definiti di seguito.
2. Verificare che il servizio SSH sia attivo e in esecuzione
In genere, il servizio SSH viene avviato automaticamente dopo l'installazione. Ma potrebbe essere il servizio interrotto per qualche motivo. Per verificare lo stato corrente del servizio SSH, eseguire:
sudo systemctl status ssh
Se il servizio SSH non è in esecuzione o non è attivo, utilizzare i comandi indicati di seguito per abilitare il servizio all'avvio del sistema e avviare il servizio:
sudo systemctl enable ssh
sudo systemctl start ssh
Una volta che il servizio è stato avviato correttamente, puoi connetterti al tuo sistema tramite ssh. Nel caso in cui dovessi riscontrare ancora lo stesso errore, controlla il prossimo possibile problema.
3. Il servizio SSH è in esecuzione su una porta diversa
Potrebbe essere che il servizio SSH sia in ascolto su una porta diversa. Questa è anche una procedura consigliata per la protezione dei server. Puoi scoprire la porta del server SSH eseguendo il comando seguente:
ss -tulpn | grep ssh
Il servizio SSH potrebbe essere in ascolto sulla porta 2222 oppure su altre porte. Dovresti connettere il sistema remoto con SSH sulla porta 22. Possiamo definire un numero di porta con una connessione SSH come il comando indicato di seguito:
ssh -p 2222 [email protected]
Spero che questo risolva il tuo problema. Se stai ancora affrontando lo stesso problema, controlla il suggerimento seguente.
4. La porta SSH è bloccata dal firewall
Questa è la causa più comune per cui il firewall blocca le richieste.
Ora devi identificare quale firewall stai utilizzando. Se il sistema remoto si trova sull'hosting cloud, controlla il gruppo di sicurezza di tale hosting.
Sui sistemi con accesso fisico, può verificare se UFW o Firewalld è attivo.
- Usando UFW
Controlla lo stato del firewall UFW con il comando seguente:
sudo ufw status
Se il firewall è in uno stato attivo, puoi aprire la porta 22 con il comando indicato di seguito:
sudo ufw allow 22/tcp
- Utilizzando FirewallD
Controlla se il demone firewalld è attivo e in esecuzione:
sudo systemctl status firewalld
Se l'output mostra Active: active (running)
, puoi aprire la porta SSH eseguendo il comando seguente:
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
Quindi ricaricare il firewall per applicare le modifiche:
sudo firewall-cmd --reload
Conclusione
In questo post del blog, abbiamo discusso quattro possibili problemi per l'errore "Port 22: Connection refused". Fornisce anche le soluzioni per ogni problema. Spero che questo tutorial aiuti a risolvere il tuo problema.
Se hai trovato qualche altro motivo per questo problema, per favore menzionalo nel commento.