Comment corriger l’erreur SSH « Connexion refusée » ?
Table des matières
L’erreur SSH « Connexion refusée » se produit lorsque vous essayez de vous connecter à un serveur SSH (Secure Socket Shell), mais la connexion échoue.
SSH est un protocole réseau qui vous permet d’exécuter de nombreuses tâches via une connexion chiffrée et sécurisée. Comme FTP, vous pouvez l’utiliser pour envoyer, télécharger ou éditer des fichiers.
Cependant, via SSH, vous pouvez effectuer des tâches beaucoup plus avancées. Vous pouvez exécuter divers scripts et commandes directement sur le serveur via une interface en ligne de commande. Pour plus d’informations, consultez ce guide SSH détaillé.
Vous ne rencontrerez pas cette erreur dans votre navigateur en visitant des sites. La connexion SSH est établie entre un client SSH installé sur votre ordinateur et un programme serveur SSH (également appelé démon) installé sur un serveur d’hébergement web. Par conséquent, l’endroit le plus courant où vous verrez cette erreur est dans un programme client SSH.
Ci-dessous, vous pouvez voir un exemple de l’erreur « Connexion SSH port 22 refusée » dans le terminal sur un ordinateur Mac.
De même, vous verrez l’erreur dans Terminal si vous êtes un utilisateur Linux. L’exemple ci-dessous provient d’un système d’exploitation Linux/CentOS.
Les utilisateurs de Windows verront généralement l’erreur sur le célèbre client SSH PuTTY. PuTTY peut afficher une autre variante de l’erreur: « La connexion a expiré ».
Quelles sont les raisons de l’erreur « Connexion refusée » en SSH et comment les corriger ?
Bien que le message d’erreur en lui-même ne soit pas vraiment révélateur du problème, il existe quelques causes courantes. Nous allons examiner chaque cas et sa solution.
Aucun client SSH n’est installé sur votre ordinateur local
Pour établir une connexion SSH, votre ordinateur doit disposer d’un programme appelé client SSH. Il vous permet de communiquer avec un serveur distant et d’exécuter des commandes SSH. Si le programme est manquant, vous verrez l’erreur SSH « Connexion refusée ».
Un moyen simple de déterminer si SSH est installé sur votre ordinateur est d’exécuter la commande suivante dans le terminal .
$ ssh
Si SSH est installé, la réponse sur Terminal sera une liste des commandes disponibles. Sinon, la sortie sera « command not found ».
Les utilisateurs de Mac n’ont pas besoin d’installer de client SSH. Toutes les versions modernes de macOS ont un paquet SSH pré-installé, et vous pouvez l’exécuter à partir de l’outil Terminal .
Sous Linux, vous pouvez également exécuter SSH depuis le terminal . Cependant, il n’y a pas de client SSH intégré par défaut, vous devez donc l’installer en plus.
En fonction de votre distribution, vous pouvez installer le paquetage OpenSSH pour Linux en exécutant les commandes spécifiques dans le terminal .
Pour installer OpenSSH dans la distribution Ubuntu/Debian , exécutez la commande suivante.
$ sudo apt install openssh-client
Pour les distributions CentOS/RHEL , utilisez cette commande.
$ sudo yum install openssh-clients
Windows n’a pas non plus de client SSH par défaut, vous devrez donc l’installer vous-même.
Dans les anciennes versions de Windows, OpenSSH n’est pas directement pris en charge . Par conséquent, vous devez installer un programme client qui vous permet d’établir une connexion SSH. Le plus populaire est PuTTY. Pour obtenir des instructions détaillées, lisez ce guide sur comment installer et utiliser PuTTY.
À partir de Windows 10 (build1809), vous n’avez plus besoin de client dédié pour l’accès SSH. Vous pouvez installer et exécuter OpenSSH dans l’invite de commande ou dans le PowerShell . Pour des instructions détaillées, consultez la documentation officielle pour comment installer OpenSSH sous Windows.
Aucun démon SSH n’est installé sur votre serveur d’hébergement web
Avoir un client SSH sur votre ordinateur local est une condition préalable importante pour une connexion SSH. Cependant, le serveur d’hébergement de votre site web doit également avoir un programme serveur SSH installé. Il s’appelle le démon SSH et il sert à surveiller et à autoriser les connexions SSH.
Si vous essayez de vous connecter à un serveur sur lequel il manque un démon SSH, vous obtiendrez également le message « Connexion refusée ». La plupart des hébergeurs gérés ont des serveurs SSH préinstallés par défaut. SSH est activé sur tous les forfaits des clients SiteGround.
Contactez votre hébergeur pour vous assurer que le démon SSH est installé sur votre serveur. Peut-être que le démon SSH est activé, mais il est actuellement indisponible. L’assistance de votre hébergement pourra vérifier ses paramètres et vous fournir plus d’informations.
Si vous gérez votre propre serveur dédié ou localhost, vous devez installer le paquetage du démon SSH.
Pour installer le serveur OpenSSH, vous pouvez utiliser les guides suivants.
- Installer le serveur OpenSSH sous Linux Ubuntu/Debian
- Installer le serveur OpenSSH sous Windows
- Comment installer le paquet OpenSSH sous Linux CentOS/RHEL
Un pare-feu bloque le port SSH
Pour gérer efficacement les données et le trafic des différents services, les systèmes d’exploitation utilisent des ports. Les ports sont des points de terminaison logiciels conçus pour gérer uniquement les données provenant de services spécifiques. Par exemple, votre application de messagerie utilise un port pour envoyer des courriels via SMTP et un autre port pour recevoir des messages entrants via IMAP ou POP3.
Le service SSH utilise également des ports dédiés pour échanger des données. Par défaut, le port est 22 . Cependant, de nombreux hébergeurs utilisent un port SSH personnalisé à la place. Le port SSH sur SiteGround est 18765 .
Si vous n’êtes pas sûr du port, vous pouvez exécuter l’une des commandes suivantes sur votre serveur.
$ grep Port /etc/ssh/ssh_config
ou
$ grep Port /etc/ssh/sshd_config
Le résultat de la commande affiche le port SSH. Dans l’exemple ci-dessous, le système indique que c’est 22.
Chaque port ouvert est considéré comme une vulnérabilité potentielle que des personnes malveillantes pourraient exploiter. Par conséquent, un pare-feu bloque peut-être le port SSH. Le plus souvent, des règles de pare-feu plus restrictives sont définies sur les réseaux professionnels, les VPN et les réseaux publics, tels que les réseaux Wi-Fi des universités, des aéroports ou des bibliothèques.
Si vous utilisez un tel réseau et que vous recevez ce message d’erreur, essayez de vous connecter en SSH depuis un autre réseau. Idéalement, essayez depuis le Wi-Fi de votre domicile, ce qui devrait être moins restrictif. Si vous ne parvenez toujours pas à vous connecter en SSH, vérifiez les paramètres de votre pare-feu et assurez-vous d’autoriser les connexions pour les ports 22 et 18765 (pour SiteGround ).
Une autre possibilité est que le blocage vienne du serveur d’hébergement. Vous pouvez utiliser des informations d’identification incorrectes et accumuler des tentatives de connexion infructueuses. Ainsi, le pare-feu du serveur peut bloquer votre IP pour les connexions sur le port SSH. Contactez votre hébergeur, afin qu’il puisse vérifier votre adresse IP et la débloquer, si tel est le cas.
Informations d’identification SSH ou port
incorrects
Vous avez besoin de plusieurs identifiants pour vous connecter depuis votre client SSH à un serveur. Si l’un des paramètres est incorrect, le serveur renvoie le message « Connexion refusée ».
Toute connexion SSH nécessite les informations suivantes:
- Nom d’hôte – c’est l’adresse du serveur. Il peut s’agir de son adresse IP, du nom du serveur ou du domaine de votre site web (si l’enregistrement A du domaine pointe vers le serveur).
- Nom d’utilisateur SSH – le nom d’utilisateur pour le serveur SSH du site web.
- Mot de passe – il est important de noter que l’utilisateur SSH n’a pas de mot de passe. Le mot de passe demandé est le mot de passe de votre clé SSH privée. En savoir plus sur les clés SSH
- Port – le port par défaut pour les connexions SSH est le port 22. Cependant, pour des raisons de sécurité, de nombreux hébergeurs utilisent un port SSH personnalisé à la place de celui par défaut. Le port pour SSH dans SiteGround est 18765 .
Pour vous assurer d’avoir les bonnes informations, connectez-vous au panneau de contrôle de votre hébergement. Il devrait y avoir une section où les informations d’identification SSH sont listées.
Les utilisateurs de SiteGround peuvent trouver les informations d’identification dans Site Tools . Ouvre la section “Sites web” de votre espace client . Accédez à Site Tools pour le site en question et naviguez jusqu’à la section DEVS , puis sélectionnez SSH Keys Manager. Sur cette page, vous pouvez voir l’utilisateur SSH, le nom d’hôte et le port sous Identifiants SSH.
Le service SSH est en panne
La plupart des solutions répertoriées jusqu’à présent sont utiles, étant donné que le problème provient de votre périphérique local ou du réseau. Si aucune n’a fonctionné, l’erreur peut être due à un problème persistant sur le serveur d’hébergement.
Le service SSH peut tomber en panne si le serveur est surchargé en raison de ressources insuffisantes ou de pics de trafic importants. Contactez l’assistance de votre hébergeur, afin qu’il vérifie l’état du service SSH et vous fournisse plus d’informations.
Si vous gérez votre propre serveur dédié ou localhost, vous devrez peut-être vérifier l’état du serveur SSH. Il est peut-être installé, mais pas activé.
Pour activer le serveur SSH, exécutez la commande SSH suivante dans le terminal .
$ service sudo ssh start
Si vous devez redémarrer le serveur SSH, utilisez la commande ci-dessous.
$ sudo service ssh restart
Résumé
SSH est extrêmement utile dans de nombreuses situations et fournit un large éventail de fonctions pour les utilisateurs avancés. Inutile de dire que c’est frustrant lorsqu’un service aussi essentiel est en panne. Cependant, l’erreur « Connexion refusée » se résume à un nombre limité de causes possibles.
Ce guide a examiné les plus courants. L’examen des solutions mentionnées ci-dessus devrait vous aider à corriger l’erreur.
Une autre erreur liée aux connexions SSH est « Autorisation refusée ». Apprenez-en plus à ce sujet et comment y remédier dans ce guide à propos de l’erreur « Permission refusée (clé publique) » lors de la connexion via SSH.
Pour savoir comment se connecter en SSH en détail, lisez cet article sur comment accéder à votre site via une connexion SSH.