Noter: Les commandes discutées ici ont été testées sur Ubuntu 20.04 LTS. Les mêmes commandes sont également valables pour le système Debian.
Correction d'une erreur de connexion refusée
Il s'agit de l'erreur « Connexion refusée » que vous pourriez rencontrer lors de la connexion à un système distant via SSH.
Suivez les solutions ci-dessous étape par étape afin de résoudre l'erreur « Connexion refusée ».
Assurez-vous qu'OpenSSH est installé
L'une des raisons pour lesquelles vous pouvez recevoir une erreur « Connexion refusée » est que le serveur OpenSSH n'est pas installé sur le serveur cible.
Tout d'abord, vous devrez vous assurer que le serveur OpenSSH est installé sur le système auquel vous essayez d'accéder via SSH. Afin de vérifier si OpenSSH est installé ou non, exécutez la commande suivante dans le terminal du serveur cible :
$ sudo apt list --installed | grep openssh-serverCette commande filtre essentiellement le terme "openssh-server" de la liste des packages installés. Si vous recevez la sortie similaire suivante, cela indique que le serveur OpenSSH est installé. D'un autre côté, si vous ne recevez aucune sortie, cela signifie qu'OpenSSH est manquant sur le serveur cible.
S'il n'est pas installé sur le serveur cible, vous pouvez l'installer à l'aide de la commande suivante en tant que sudo :
$ sudo apt install openssh-serverTapez ensuite le mot de passe sudo et, lorsque vous êtes invité à confirmer, appuyez sur 'y'. Une fois installé, confirmez-le à l'aide de la même commande
$ sudo apt list --installed | grep openssh-serverVérifier le service SSH
Le service OpenSSH s'exécute en arrière-plan et écoute les connexions entrantes. L'arrêt du service OpenSSH peut être l'une des raisons pour lesquelles vous recevez une erreur « Connexion refusée ».
Par conséquent, il est nécessaire de vérifier si le service OpenSSH est en cours d'exécution ou non à l'aide de la commande suivante dans Terminal :
$ sudo service ssh étatSi vous voyez la sortie suivante, cela signifie que le service est actif et s'exécute en arrière-plan.
En revanche, si vous recevez inactif (mort), cela signifie que le service ne fonctionne pas. Vous pouvez exécuter le service OpenSSH en utilisant la commande suivante en tant que sudo dans Terminal :
$ sudo service ssh démarrerAfin de redémarrer le service, utilisez la commande suivante :
$ sudo service ssh redémarrageVérifier le port d'écoute du serveur SSH
Une autre raison pour laquelle vous recevez une erreur « Connexion refusée » est que vous essayez de vous connecter au mauvais port. Par exemple, si le serveur est configuré pour écouter sur le port 2244 et que vous essayez de vous connecter à son port par défaut 22, alors, dans ce cas, vous recevrez une erreur « Connexion refusée ».
Avant d'essayer de vous connecter, vous devez vérifier le port d'écoute du serveur SSH. S'il s'agit du port par défaut (22), vous pouvez le connecter à l'aide de la commande suivante :
$ ssh [nom d'utilisateur]@[IP ou nom d'hôte du serveur distant]S'il s'agit d'un port autre que le port par défaut, vous devrez vous connecter au serveur SSH en utilisant ce port :
$ ssh -p [numéro_port] [nom d'utilisateur]@[adresse_ip]Afin de vérifier sur quel port le serveur OpenSSH écoute ; utilisez la commande suivante dans Terminal :
$ sudo netstat -ltnp | grep sshdVous recevrez une sortie semblable à la suivante :
Dans la troisième colonne, vous pouvez voir que le port d'écoute du serveur est 2244. Si tel est le cas, vous devrez vous connecter au serveur SSH en utilisant ce port.
$ ssh -p [2244] [nom d'utilisateur]@[adresse_ip]Autoriser SSH dans le pare-feu
Le pare-feu bloquant le port SSH peut être une autre raison majeure de l'erreur « Connexion refusée ». Si un pare-feu s'exécute sur le serveur SSH, vous devrez y autoriser le port SSH à l'aide de la commande suivante. Remplace le Port par le numéro de port que le serveur SSH écoute :
$ sudo ufw autoriser le port /tcpPar exemple, si le serveur SSH écoute le port 2244, vous pouvez l'autoriser dans le pare-feu en tant que :
$ sudo ufw autoriser 2244/tcp
Rechargez le pare-feu à l'aide de la commande suivante :
$ sudo ufw rechargerAfin de confirmer si les règles ont été ajoutées, vérifiez l'état du pare-feu à l'aide de la commande suivante dans Terminal :
$ sudo ufw statusLa sortie suivante montre que le port 2244 est autorisé dans le pare-feu.
Résoudre le conflit d'adresses IP en double
L'erreur « Connexion refusée » peut également se produire en raison d'un conflit d'adresses IP en double. Donc, assurez-vous que le système n'a pas d'adresse IP en double.
Installez l'utilitaire arping sur votre système à l'aide de la commande suivante :
$ sudo apt installer arpingPuis cinglez l'adresse IP du serveur SSH.
$ pingDans la sortie, si vous voyez la réponse de plusieurs adresses MAC, cela montre qu'il y a une adresse IP en double en cours d'exécution sur le système. Si tel est le cas, modifiez l'adresse IP du serveur SSH et essayez de vous reconnecter avec la nouvelle adresse IP.
Voici comment corriger l'erreur « Connexion refusée » par le port 22 dans les systèmes Linux. Dans cet article, nous avons décrit quelques moyens qui vous aideront sûrement à résoudre l'erreur "Connexion refusée".