Le message “SSH connexion refusée” est l’une des erreurs les plus courantes lorsqu’on tente de se connecter à un serveur Linux à distance.
Cette erreur peut apparaître aussi bien sur un VPS, un serveur dédié, un serveur local ou même un Raspberry Pi.
Bonne nouvelle : dans la majorité des cas, le problème est simple à identifier et à corriger.
Dans ce guide, nous allons voir pourquoi une connexion SSH est refusée et surtout toutes les solutions concrètes pour rétablir l’accès, étape par étape.
Que signifie l’erreur « SSH connexion refusée » ?
Lorsque vous voyez une erreur du type :
ssh: connect to host xxx.xxx.xxx.xxx port 22: Connection refused
cela signifie que :
- le serveur est joignable
- mais le service SSH refuse la connexion
👉 Le problème vient presque toujours :
- du service SSH
- du port
- du pare-feu
- des permissions
- ou de la configuration réseau
Vérifier que le serveur est bien accessible
Avant de chercher plus loin, vérifiez que le serveur répond.
Depuis votre machine locale :
ping IP_DU_SERVEUR
Si le serveur ne répond pas :
- problème réseau
- serveur éteint
- mauvaise adresse IP
Si le ping fonctionne, le problème est bien lié à SSH.
Vérifier que le service SSH est installé
Sur certains systèmes Linux minimalistes, SSH n’est pas installé par défaut.
Vérifier la présence du serveur SSH
ssh localhost
Si la commande échoue, vérifiez le service :
systemctl status ssh
ou :
systemctl status sshd
Installer le serveur SSH (si absent)
Ubuntu / Debian
sudo apt update
sudo apt install openssh-server
Fedora
sudo dnf install openssh-server
Arch Linux
sudo pacman -S openssh
Puis démarrez le service :
sudo systemctl start ssh
sudo systemctl enable ssh
Vérifier que le service SSH est démarré
Un service arrêté entraîne automatiquement une connexion SSH refusée.
sudo systemctl status ssh
Si le service est inactif :
sudo systemctl restart ssh
Puis réessayez la connexion.
Vérifier le port SSH utilisé
Par défaut, SSH utilise le port 22.
Mais il peut avoir été modifié pour des raisons de sécurité.
Tester le port 22
ssh utilisateur@IP_DU_SERVEUR -p 22
Vérifier le port SSH configuré
Sur le serveur :
sudo nano /etc/ssh/sshd_config
Recherchez la ligne :
Port 22
Si le port est différent (ex: 2222), utilisez-le lors de la connexion :
ssh utilisateur@IP_DU_SERVEUR -p 2222
Vérifier le pare-feu (cause très fréquente)
Un pare-feu mal configuré est une cause majeure de connexion SSH refusée.
Vérifier UFW (Ubuntu / Debian)
sudo ufw status
Autoriser SSH :
sudo ufw allow ssh
Ou si port personnalisé :
sudo ufw allow 2222/tcp
Rechargez le pare-feu :
sudo ufw reload
Vérifier le pare-feu côté hébergeur
Sur un VPS ou serveur cloud, le pare-feu peut aussi être :
- chez l’hébergeur (OVH, Scaleway, Hetzner, etc.)
- dans le panneau de contrôle
👉 Vérifiez que le port SSH est bien ouvert dans :
- le firewall réseau
- les règles de sécurité
C’est une erreur très fréquente chez les débutants.
Vérifier l’utilisateur SSH
Une connexion SSH refusée peut venir d’un utilisateur incorrect.
Testez :
ssh root@IP_DU_SERVEUR
ou :
ssh user@IP_DU_SERVEUR
Assurez-vous que :
- l’utilisateur existe
- il a un shell valide
Sur le serveur :
cat /etc/passwd
Vérifier l’autorisation de connexion root
Par défaut, certaines distributions interdisent la connexion SSH root.
Dans le fichier :
sudo nano /etc/ssh/sshd_config
Recherchez :
PermitRootLogin
Valeurs possibles :
yesnoprohibit-password
Après modification :
sudo systemctl restart ssh
⚠️ Autoriser root en SSH est déconseillé en production.
Vérifier les clés SSH (si connexion par clé)
Si vous utilisez une clé SSH, une erreur de configuration peut bloquer l’accès.
Points à vérifier :
- clé publique bien copiée dans
~/.ssh/authorized_keys - permissions correctes
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Une mauvaise permission entraîne souvent un refus de connexion SSH.
Vérifier les logs SSH (solution la plus fiable)
Les logs indiquent précisément la cause de l’erreur.
Ubuntu / Debian
sudo journalctl -u ssh
ou :
sudo tail -f /var/log/auth.log
CentOS / Fedora
sudo tail -f /var/log/secure
Les logs permettent d’identifier :
- utilisateur refusé
- clé invalide
- port bloqué
- configuration incorrecte
Redémarrer le service SSH après modification
Après chaque changement de configuration :
sudo systemctl restart ssh
Sans redémarrage, les modifications ne sont pas prises en compte.
Cas particulier : SSH refusé après changement de port
Erreur classique :
- port modifié
- pare-feu non mis à jour
Solution :
- autoriser le nouveau port
- redémarrer SSH
- tester avant de fermer la session active
Toujours tester une nouvelle connexion avant de fermer l’ancienne.
Récapitulatif rapide des solutions
Si SSH affiche “connexion refusée” :
- vérifier l’IP
- vérifier que SSH est installé
- vérifier que le service est actif
- vérifier le port
- vérifier le pare-feu local
- vérifier le pare-feu hébergeur
- vérifier l’utilisateur
- consulter les logs
Dans 90 % des cas, le problème est résolu avec ces étapes.
Conclusion
L’erreur SSH connexion refusée est frustrante, mais rarement grave.
Avec une méthode logique et structurée, il est possible d’identifier rapidement la cause et de rétablir l’accès SSH en quelques minutes.
Comprendre le fonctionnement de SSH, du pare-feu et des ports est essentiel pour :
- administrer un serveur Linux
- gérer un VPS
- sécuriser ses accès
FAQ – SSH connexion refusée
1. Pourquoi SSH refuse la connexion alors que le serveur est allumé ?
Parce que le service SSH est arrêté, le port est bloqué par un pare-feu ou la configuration SSH est incorrecte.
2. Peut-on perdre l’accès SSH définitivement ?
Oui, en cas de mauvaise configuration. D’où l’importance de tester chaque changement et d’avoir un accès console chez l’hébergeur.
3. Quel port utiliser pour SSH ?
Le port 22 est le port par défaut, mais il est courant d’utiliser un port personnalisé pour améliorer la sécurité.