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 :

  • yes
  • no
  • prohibit-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 :

  1. autoriser le nouveau port
  2. redémarrer SSH
  3. 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é.