CH-J Server Managergestione server su SSH
Menu
Tutte le guide e gli articoli →

Il server è online ma la porta SSH 22 non risponde

Controlla nell’ordine client, rete, firewall e sshd per capire perché il server risponde ma SSH no.

Verifica direttamente la porta

Una risposta a ping o un sito web funzionante non dicono nulla su SSH, perché ciascuno usa un protocollo o una porta diversi. Verifica la porta TCP direttamente dal client. Connection refused significa che qualcosa ha risposto ma nessun servizio ha accettato la connessione. Un timeout significa che non ha risposto nulla e in genere indica un problema di firewall, di instradamento o un computer sovraccarico.

nc -vz -w 5 server.example 22
ssh -v -o ConnectTimeout=5 user@server.example

Connection refused: controlla sshd dalla console

Usa la console del provider o dell’ipervisore, non SSH. Verifica che il servizio sia in esecuzione, su quale indirizzo e porta sia in ascolto e se la configurazione sia valida. Nelle versioni recenti di Ubuntu, SSH si avvia tramite ssh.socket, quindi controlla anche l’unità socket. Altre distribuzioni possono chiamare il servizio sshd.

sudo systemctl status ssh.service ssh.socket
sudo ss -lntp | grep -E ':22\b|sshd'
sudo sshd -t
sudo journalctl -u ssh -n 50 --no-pager

Timeout: controlla i firewall

Controlla il firewall del server e anche eventuali filtri esterni, come un gruppo di sicurezza del cloud, il router o il pannello del provider. Per vedere se i pacchetti arrivano, esegui tcpdump sul server durante un tentativo di connessione. Se non compare nulla, il blocco è prima del server. Se i pacchetti arrivano ma non esce alcuna risposta, cerca il problema sul server.

sudo ufw status verbose
sudo nft list ruleset | less
sudo tcpdump -ni any tcp port 22

Blocco dovuto a fail2ban o a una porta cambiata

Dopo alcuni accessi falliti, fail2ban potrebbe aver bloccato il tuo indirizzo: questo si manifesta come timeout o connessione rifiutata soltanto dal tuo indirizzo. Un test da un’altra rete lo rivela rapidamente. Controlla anche se la porta è stata cambiata con Port o se l’ascolto è stato limitato a un solo indirizzo con ListenAddress in sshd_config o in un file sotto /etc/ssh/sshd_config.d.

sudo fail2ban-client status sshd
sudo sshd -T | grep -E '^(port|listenaddress) '

La connessione alla porta riesce ma l’accesso si blocca

Se la connessione TCP riesce ma il banner SSH non arriva mai, sshd funziona solo parzialmente oppure il sistema è sovraccarico. Controlla dalla console memoria, spazio su disco e carico. Un disco pieno o la memoria esaurita possono impedire nuove sessioni mentre i servizi esistenti continuano a rispondere.

uptime
free -h
df -h

Verifica con CH-J Server Manager

Server Diagnostics può testare ping, una connessione TCP e la stringa di identificazione SSH senza effettuare l’accesso, sia per IPv4 sia per IPv6, così puoi vedere in quale fase si verifica il problema. Opera solo dal tuo computer. Non può vedere all’interno del server né stabilire quale firewall abbia scartato un pacchetto, quindi per i controlli indicati sopra serve comunque la console.

Documentazione dettagliata

OpenSSH: sshd →

man: ss →

Sblocco biometrico e sicurezza →