Tester le port lui-même
Une réponse à ping ou un site web qui fonctionne ne dit rien sur SSH, car chacun utilise un protocole ou un port différent. Testez le port TCP directement depuis le client. Connection refused signifie qu’un élément a répondu, mais qu’aucun service n’a accepté la connexion. Un timeout signifie que rien n’a répondu, ce qui indique généralement un pare-feu, un problème de routage ou une machine surchargée.
nc -vz -w 5 server.example 22
ssh -v -o ConnectTimeout=5 user@server.exampleConnection refused : vérifier sshd depuis la console
Utilisez la console du fournisseur ou de l’hyperviseur, pas SSH. Vérifiez que le service fonctionne, sur quelle adresse et quel port il écoute et si la configuration est valide. Sur les versions récentes d’Ubuntu, SSH démarre via ssh.socket : examinez donc aussi l’unité socket. Sur d’autres distributions, le service peut s’appeler 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-pagerTimeout : vérifier les pare-feu
Examinez le pare-feu du serveur ainsi que tous les filtres externes, comme un groupe de sécurité cloud, le routeur ou le panneau de gestion du fournisseur. Pour savoir si des paquets arrivent, lancez tcpdump sur le serveur pendant une tentative de connexion. Si rien n’apparaît, le blocage se situe avant le serveur. Si des paquets arrivent sans qu’aucune réponse ne sorte, cherchez sur le serveur.
sudo ufw status verbose
sudo nft list ruleset | less
sudo tcpdump -ni any tcp port 22Blocage par fail2ban ou changement de port
Après des échecs de connexion, fail2ban peut avoir bloqué votre adresse, ce qui se manifeste par un timeout ou un refus de connexion uniquement depuis cette adresse. Un test depuis un autre réseau permet de le constater rapidement. Vérifiez aussi si le port a été modifié avec Port ou si l’écoute a été limitée à une seule adresse avec ListenAddress dans sshd_config ou dans un fichier sous /etc/ssh/sshd_config.d.
sudo fail2ban-client status sshd
sudo sshd -T | grep -E '^(port|listenaddress) 'Le port accepte la connexion, mais l’ouverture de session se bloque
Si la connexion TCP réussit, mais que la bannière SSH n’arrive jamais, sshd ne fonctionne que partiellement ou le système est surchargé. Vérifiez la mémoire, l’espace disque et la charge depuis la console. Un disque plein ou une mémoire épuisée peuvent empêcher de nouvelles sessions alors que les services existants répondent toujours.
uptime
free -h
df -hVérifier avec CH-J Server Manager
Server Diagnostics peut tester ping, une connexion TCP et la chaîne d’identification SSH sans ouvrir de session, en IPv4 comme en IPv6, pour voir à quelle étape survient l’échec. Les tests sont effectués uniquement depuis votre ordinateur. Le module ne peut ni voir ce qui se passe à l’intérieur du serveur ni déterminer quel pare-feu a rejeté un paquet : la console reste donc nécessaire pour les vérifications ci-dessus.