Comment réparer l’erreur SSH « Connexion refusée » sous Linux

Comment réparer l’erreur SSH « Connexion refusée » sous Linux

SSH est un protocole réseau qui vous permet d’accéder en toute sécurité à un système distant et de le gérer sur un réseau. Lors de la connexion à une machine distante via SSH, vous avez peut-être rencontré l’erreur « connexion refusée ». L’expérience de ce problème peut être frustrante, surtout si vous êtes un administrateur système et que vous devez effectuer certaines tâches sur le système distant de manière urgente.

Examinons quelques-unes des causes possibles de l’erreur SSH « connexion refusée » et des méthodes pour la résoudre.

1. Vérifiez si un serveur SSH est installé

Une cause possible de l’erreur « connexion refusée » est que la machine distante n’exécute pas de serveur SSH. Sans le serveur SSH, la machine n’acceptera pas les connexions SSH entrantes et vous ne pourrez pas y accéder à distance.

Ainsi, la toute première étape du dépannage de l’erreur consiste à vérifier si un serveur SSH est installé sur la machine distante. Utilisez la commande suivante pour vérifier l’installation du serveur SSH :

Sur les distributions basées sur Debian :

dpkg --list | grep ssh

Sur les distributions basées sur RHEL :

yum list installed | grep ssh

Sur openSUSE :

zypper search -i | grep ssh

Sur les distributions basées sur Arch :

pacman -Q | grep ssh

Si le serveur SSH est installé sur la machine distante, vous le verrez répertorié dans la sortie. Sinon, vous devez installer le serveur OpenSSH sur la machine distante à laquelle vous souhaitez accéder via SSH. OpenSSH est une version open source des outils SSH pour accéder et contrôler à distance les systèmes.

Pour installer le serveur OpenSSH, utilisez les commandes suivantes :

Sur les distributions basées sur Debian :

sudo apt install openssh-server

Sur les distributions basées sur RHEL :

sudo yum install openssh-server

Sur openSUSE :

sudo zypper install openssh

Sur les distributions basées sur Arch :

pacman -S openssh

2. Vérifiez l’état du service SSH

Une autre raison de l’erreur « connexion refusée » peut être que le service SSH est désactivé ou ne fonctionne pas sur la machine distante. Une fois que vous êtes sûr que le serveur SSH est installé, la deuxième chose que vous devez vérifier est l’état du serveur.

sudo systemctl status sshd

Si le service est opérationnel, la sortie l’indiquera comme actif (en cours d’exécution) . Sinon, vous verrez quelque chose comme inactive (mort) .

état du serveur SSH

Si le serveur SSH n’est pas en cours d’exécution, vous pouvez le démarrer manuellement à l’aide de la commande suivante :

sudo systemctl start sshd

Vous pouvez également activer le service pour qu’il démarre automatiquement au démarrage avec :

sudo systemctl enable sshd

3. Vérifiez le port SSH

Par défaut, le serveur SSH s’exécute sur le port 22. Cependant, on peut changer le port par défaut. Par conséquent, si vous recevez l’erreur SSH « connexion refusée », c’est peut-être parce que vous essayez de vous connecter au serveur SSH sur le port par défaut 22 alors qu’il s’exécute sur un port différent.

Vous pouvez utiliser la commande netstat avec grep pour trouver le port sur lequel le serveur SSH écoute :

sudo netstat -plntu | grep ssh

vérifier le port ssh

Vous pouvez également trouver le port SSH à partir du fichier sshd_config à l’aide de la commande suivante :

grep port /etc/ssh/sshd_config

Après avoir identifié le bon port SSH, essayez de vous connecter à votre système distant en utilisant ce port spécifique.

4. Vérifiez votre pare-feu système

La plupart des problèmes de connectivité surviennent parce que le pare-feu de votre ordinateur bloque certains ports ou services. Si le serveur SSH est installé et en cours d’exécution sur la machine distante, l’étape suivante consiste à vérifier votre pare-feu.

Pour déterminer si le pare-feu bloque la connexion, désactivez temporairement le pare-feu à l’aide des commandes suivantes :

Sur les distributions Linux basées sur Debian et Arch :

sudo ufw disable

Sur les distributions basées sur RHEL et openSUSE :

sudo systemctl disable firewalld

Si l’erreur n’apparaît pas après la désactivation du pare-feu, cela signifie que le pare-feu bloquait la connexion. Dans ce cas, réactivez le pare-feu et ajoutez une règle qui autorise SSH.

Sur les distributions Linux basées sur Debian et Arch, utilisez la commande suivante pour autoriser SSH dans le pare-feu UFW :

sudo ufw allow ssh

Alternativement, vous pouvez également autoriser SSH par le numéro de port dans le pare-feu. Supposons que le serveur SSH utilise le port 5555, vous utiliserez alors la commande suivante pour l’autoriser dans le pare-feu :

sudo ufw allow 5555

Pour vérifier si la règle a été ajoutée avec succès, vérifiez l’état UFW :

sudo ufw status

Sur les distributions basées sur RHEL et openSUSE, utilisez la commande suivante pour autoriser SSH dans le pare-feu :

sudo firewall-cmd --permanent --add-service=ssh

Pour autoriser SSH par numéro de port, utilisez la commande suivante :

sudo firewall-cmd --permanent --add-port={port}/tcp

Pour un serveur SSH exécuté sur le port 4444, la commande serait :

sudo firewall-cmd --permanent --add-port=4444/tcp

Pour vérifier l’ajout réussi de la règle dans le pare-feu, exécutez :

sudo firewall-cmd --list-all

5. Résoudre les conflits d’adresses IP

Il est également possible que l’erreur SSH « connexion refusée » se produise en raison d’un conflit entre l’adresse IP du serveur SSH et l’adresse IP d’un autre système du réseau. Cela se produit lorsque deux systèmes sur un réseau prétendent avoir la même adresse IP, ce qui entraîne un conflit IP.

Pour confirmer s’il existe un conflit IP sur votre réseau, utilisez l’outil arp-scan comme suit :

arp-scan [network-id]

S’il y a un conflit IP, vous verrez l’adresse IP en double dans la sortie. La capture d’écran ci-dessous est un exemple de conflit IP dans un réseau :

utiliser arp-scan pour trouver une adresse IP en double

Pour éviter les conflits IP, assurez-vous qu’aucun périphérique n’a d’adresses IP statiques qui chevauchent les adresses du pool DHCP.

Astuce bonus : exécutez SSH en mode verbeux

Chaque fois que vous rencontrez une erreur SSH, essayez d’exécuter la commande ssh en mode détaillé pour rechercher le problème. Pour exécuter SSH en mode détaillé, utilisez la commande ssh avec l’ option -vvv comme suit :

ssh -vvv username@ip_address

débogage ssh

En mode verbeux, vous verrez des messages de débogage à chaque étape de la connexion qui vous aideront à comprendre où se situe le problème.

Dépannage de l’erreur SSH « Connexion refusée » sous Linux

En identifiant les causes potentielles de l’erreur de connectivité SSH et en mettant en œuvre les solutions suggérées, vous serez en mesure de dépanner et de résoudre l’erreur de « connexion refusée » SSH. En plus de ces étapes, assurez-vous de vous connecter à la bonne adresse IP et d’utiliser les bons identifiants de connexion.

Pour rendre votre connexion à distance plus sécurisée, vous pouvez configurer une authentification à deux facteurs pour SSH sous Linux.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *