Aller au contenu

Guide

Port 22 (SSH) : usage, sécurité et erreur « connection refused »

Le port 22 est celui de SSH et SFTP. Comment l’ouvrir, le sécuriser, le changer, et résoudre les erreurs connection refused et timed out.

Le port 22 est le port par défaut de SSH (Secure Shell), le protocole qui permet d’administrer un serveur à distance en ligne de commande et de transférer des fichiers de façon chiffrée (SFTP, SCP). Il utilise le protocole TCP. Voici à quoi il sert, comment l’ouvrir, le sécuriser ou le changer, et comment résoudre les erreurs « connection refused » et « connection timed out ».

À quoi sert le port 22 ?

Le registre officiel des ports, tenu par l’IANA, attribue le port 22 au service SSH. Quand vous tapez ssh utilisateur@adresse-du-serveur, le client SSH se connecte par défaut au port 22 TCP du serveur, où écoute le démon sshd. Le même port sert aux transferts de fichiers SFTP (par exemple avec FileZilla en mode SFTP) et SCP.

Sur un VPS ou un serveur dédié Linux, c’est généralement le premier et le seul accès d’administration : le port 22 est ouvert dès la livraison du serveur.

« Connection refused » sur le port 22 : les causes

Le message ssh: connect to host … port 22: Connection refused signifie que la machine a répondu, mais qu’aucun service n’accepte la connexion sur ce port :

  • le service SSH n’est pas démarré ou n’est pas installé (fréquent sur une machine de bureau ou un conteneur) ;
  • SSH écoute sur un autre port que 22 : utilisez ssh -p 2222 utilisateur@serveur avec le bon numéro ;
  • un pare-feu local rejette la connexion de façon explicite.

Sur le serveur, vérifiez l’état du service avec sudo systemctl status ssh (Debian, Ubuntu) ou sudo systemctl status sshd (Rocky Linux, AlmaLinux, Fedora), puis l’écoute du port avec sudo ss -tlnp | grep :22. Pour installer le serveur SSH sur Debian ou Ubuntu : sudo apt install openssh-server.

« Connection timed out » : un autre problème

Un délai dépassé signifie qu’aucune réponse n’est revenue : les paquets sont bloqués ou perdus en chemin.

  • mauvaise adresse IP, ou serveur éteint ;
  • pare-feu du serveur ou de l’hébergeur qui ignore les paquets (règle « drop ») ;
  • réseau qui bloque le port 22 en sortie : certains réseaux d’entreprise, d’école ou Wi-Fi publics le font ;
  • adresse bannie par fail2ban après plusieurs échecs de connexion.

La console de secours proposée par la plupart des hébergeurs (KVM, IPMI, console web) permet d’intervenir sur le serveur sans passer par SSH.

Ouvrir le port 22 dans le pare-feu

  • Avec UFW (Ubuntu) : sudo ufw allow 22/tcp, ou sudo ufw allow OpenSSH.
  • Avec firewalld (Rocky Linux, AlmaLinux) : sudo firewall-cmd --permanent --add-service=ssh puis sudo firewall-cmd --reload.

Avant d’activer un pare-feu à distance, autorisez toujours SSH en premier : sinon, vous vous enfermez dehors.

Sécuriser l’accès SSH

Un port 22 ouvert sur Internet reçoit en permanence des tentatives de connexion automatisées. Les mesures recommandées :

  1. Authentification par clé plutôt que par mot de passe : générez une paire de clés avec ssh-keygen -t ed25519, copiez la clé publique avec ssh-copy-id, puis désactivez les mots de passe (PasswordAuthentication no dans /etc/ssh/sshd_config).
  2. Pas de connexion directe en root : PermitRootLogin no, et un utilisateur avec sudo.
  3. Fail2ban pour bannir les adresses qui multiplient les échecs.
  4. Restriction par adresse IP quand vous vous connectez toujours depuis les mêmes adresses. Notre outil mon adresse IP publique affiche la vôtre.
  5. Mises à jour régulières d’OpenSSH et du système.

Changer le port SSH

Déplacer SSH sur un autre port (par exemple 2222) réduit le bruit des robots dans les journaux, sans remplacer les mesures ci-dessus. La directive Port se règle dans /etc/ssh/sshd_config. Sur les versions récentes d’Ubuntu, où SSH est démarré par activation de socket, il faut ensuite recharger systemd (sudo systemctl daemon-reload) et redémarrer ssh.socket. Dans tous les cas : ouvrez le nouveau port dans le pare-feu, testez la connexion dans une seconde session, et seulement ensuite fermez l’ancien port.

Port 22 et SFTP

SFTP passe par SSH, donc par le port 22 : il ne faut pas le confondre avec FTP (ports 20 et 21) ni avec FTPS. Dans FileZilla, choisissez le protocole « SFTP – SSH File Transfer Protocol » et le port 22.

Les autres ports courants (80, 443, 3306, 3389…) sont présentés dans notre liste des ports réseau. Pour choisir un serveur à administrer en SSH, consultez le comparateur.

Sources