CH-J Server Managergestion de serveur sur SSH
Menu
Tous les guides et articles →

Le serveur est en ligne, mais le port SSH 22 ne répond pas

Vérifiez dans l’ordre le client, le réseau, le pare-feu et sshd pour comprendre pourquoi le serveur répond, mais pas SSH.

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.example

Connection 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-pager

Timeout : 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 22

Blocage 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 -h

Vé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.

Documentation détaillée

OpenSSH: sshd →

man: ss →

Déverrouillage biométrique et sécurité →