Come appare il messaggio
ssh: connect to host server.example.com port 22: Connection refusedCause frequenti
- sshd non è attivo, per esempio dopo un aggiornamento o un test di configurazione fallito.
- Il servizio ascolta su un'altra porta, ad esempio
Port 2222, mentre il client usa la 22. - sshd ascolta su un solo indirizzo o solo su IPv6, quindi l'indirizzo IPv4 non ha listener.
- Un firewall rifiuta con REJECT. Con DROP si avrebbe un timeout.
- L'hostname punta a un altro server dove SSH non è attivo.
Verifica
- Stato e listener
systemctl status ssh --no-pager | head -n 5; ss -lntp | grep ssh - Porte e indirizzi configurati
grep -iE '^\s*(Port|ListenAddress|AddressFamily)' /etc/ssh/sshd_config - Testa la porta dal client
nc -vz server.example.com 22 - Controlla i ban sul server
fail2ban-client status sshd 2>/dev/null | tail -n 5
Soluzione
- Avvia il servizio e leggi il journal:
systemctl start ssh, poijournalctl -u ssh -n 30. - Se la porta è cambiata, aggiorna client, firewall e documentazione: entrambi i lati devono coincidere.
- Con fail2ban rimuovi il ban del tuo IP:
fail2ban-client set sshd unbanip IP. - Se ascolta solo su IPv6 imposta
AddressFamily anyoppure verifica l'indirizzo IPv4. - Esegui
sshd -tprima di riavviare, così una configurazione rotta non blocca tutti gli accessi.
Domande frequenti
Refused o timeout: che differenza c'è?
Refused significa che il pacchetto è arrivato ed è stato rifiutato, quindi non c'è listener. Timeout significa nessuna risposta: firewall DROP o indirizzo errato.
Mi sono chiuso fuori: come rientro?
Accedi dalla console del provider, controlla servizio e configurazione e togli il ban al tuo IP. Fail2ban agisce solo sulle nuove connessioni.