Secure Shell (SSH) est un outil de développement clé de WordPress. Il permet aux utilisateurs avancés d’accéder à des plateformes et des logiciels clés qui rendent le codage et d’autres tâches plus faciles, plus rapides et plus organisées.

Donc, si vous essayez d’utiliser SSH uniquement pour voir une erreur « Connexion refusée », vous pouvez commencer à vous sentir concerné. Cependant, il s’agit d’un problème courant, et il est tout à fait possible de le résoudre par soi-même en faisant un peu de dépannage. En un rien de temps, vous serez à nouveau aux commandes.

Dans cet article, nous allons discuter de ce qu’est le SSH et du moment où il faut l’utiliser. Nous vous expliquerons ensuite certaines raisons courantes pour lesquelles votre connexion peut être refusée, y compris dans PuTTY. Enfin, nous vous donnerons quelques conseils de dépannage.

Qu’est-ce que le SSH et quand faut-il l’utiliser ?

Secure Shell (SSH), parfois appelé Secure Socket Shell, est un protocole permettant de sécuriser l’accès au serveur de votre site par un réseau non sécurisé. En d’autres termes, c’est un moyen de vous connecter à votre serveur à distance en toute sécurité en utilisant votre interface de ligne de commande préférée :

Utilisation de SSH
Utilisation de SSH pour accéder à distance à un site WordPress hébergé sur Kinsta

Contrairement au protocole de transfert de fichiers (FTP), qui vous permet uniquement de téléverser, de supprimer et de modifier des fichiers sur votre serveur, SSH peut accomplir un large éventail de tâches. Par exemple, si une erreur vous empêche d’accéder à votre site WordPress, vous pouvez utiliser le SSH pour y accéder à distance.

Ce protocole vous permet également d’utiliser plusieurs outils de développement clés, notamment

  • WP-CLI. La ligne de commande WordPress. Vous pouvez l’utiliser pour une variété de tâches, y compris les nouvelles installations, les mises à jour groupées des extensions et les importations de fichiers média.
  • Composer. Un gestionnaire de paquets PHP. Il vous permet d’implémenter plusieurs frameworks pour les utiliser dans le code de votre site en récupérant les bibliothèques et dépendances nécessaires.
  • Git. Un système de contrôle de version utilisé pour suivre les changements de code. Cela est particulièrement utile pour les équipes de développeurs travaillant ensemble sur un même projet.
  • npm. Un gestionnaire de paquets JavaScript. Il comprend une ligne de commande et un registre de logiciels JavaScript. Remarque : les clients de Kinsta devront disposer d’un Plan d’entreprise pour accéder à cette fonctionnalité.

Il est important de noter que l’utilisation de SSH est une compétence avancée. D’une manière générale, les utilisateurs non professionnels de WordPress doivent contacter leurs développeurs ou les fournisseurs d’hébergement pour obtenir de l’aide, plutôt que d’essayer de résoudre eux-mêmes les problèmes liés au SSH.

Pourquoi ma connexion SSH est-elle refusée ? (5 raisons des erreurs de connectivité)

Malheureusement, de nombreux scénarios peuvent se produire lorsque vous essayez de vous connecter à votre serveur via SSH, ce qui peut entraîner une erreur indiquant « Connexion refusée ».

Vous trouverez ci-dessous quelques-unes des questions les plus courantes qui pourraient vous poser des problèmes.

1. Votre service SSH est en panne

Pour pouvoir se connecter à votre serveur avec SSH, il doit exécuter un démon SSH – un programme qui s’exécute en arrière-plan pour écouter et accepter les connexions.

Si ce service est en panne, vous ne pourrez pas vous connecter à votre serveur et vous risquez de recevoir une erreur de connexion refusée :

Erreur de connexion refusée dans le terminal
Erreur de connexion refusée dans le terminal

Le démon SSH de votre serveur peut être en panne pour diverses raisons, notamment des pics de trafic, des pannes de ressources, ou même une attaque par déni de service distribué (DDoS). En plus des étapes de dépannage que nous mentionnerons ci-dessous, vous pouvez contacter votre fournisseur d’hébergement pour déterminer la cause profonde du problème.

Si vous pensez que votre service SSH pourrait être en panne, vous pouvez lancer cette commande pour le savoir :

sudo service ssh status

Si la ligne de commande renvoie un état de panne, alors vous avez probablement trouvé la raison de votre erreur de connectivité.

2. Vous avez les mauvaises informations

Bien que cela puisse sembler trop simple pour être vrai, il est possible que vous ne saisissiez pas les bons identifiants lorsque vous essayez de vous connecter à votre serveur. Quatre éléments d’information sont nécessaires pour gérer les SSH :

  • Nom de l’hôte (Host name). L’adresse IP du serveur auquel vous essayez de vous connecter ou votre nom de domaine.
  • Nom d’utilisateur (Username). Votre nom d’utilisateur (S)FTP.
  • Mot de passe (Password). Votre mot de passe (S)FTP.
  • Le port par défaut est 22. Cependant, certains fournisseurs d’hébergement (dont Kinsta) changent leur numéro de port SSH pour des raisons de sécurité. Si c’est le cas, vous devriez pouvoir le trouver en vous connectant à votre tableau de bord MyKinsta.

Vous pouvez également vérifier quel port est utilisé pour SSH en exécutant cette commande :

grep Port /etc/ssh/sshd_config

La ligne de commande doit renvoyer le port correct.

Vérifiez que vous saisissez les bonnes informations et tenez compte de la possibilité de fautes de frappe ou de la saisie d’une adresse IP ou d’un port erronés.

3. Le port que vous essayez d’utiliser est fermé

Un « port » est simplement le point d’extrémité vers lequel vous êtes dirigé lorsque vous vous connectez à votre serveur. En plus de vous assurer que vous avez le bon, vous voudrez également vérifier si le port que vous essayez d’utiliser est ouvert.

Tout port ouvert est une faille de sécurité, car les pirates peuvent essayer de l’exploiter et d’accéder au serveur. C’est pourquoi les ports inutilisés sont souvent fermés pour éviter les attaques.

Dans le cas où le port 22, ou le port SSH personnalisé de votre serveur, a été fermé, vous verrez probablement une erreur de refus de connexion. Vous pouvez vérifier si le port est à l’écoute en exécutant cette commande :

sudo netstat -plnt

La ligne de commande doit renvoyer une liste des ports et de leurs « états » respectifs. Vous voulez que l’état du port 22 soit ÉCOUTÉ. Si ce n’est pas le cas, vous devrez rouvrir le port pour vous connecter à votre serveur.

4. SSH n’est pas installé sur votre serveur

Comme nous l’avons brièvement mentionné précédemment, les serveurs utilisent des démons SSH pour écouter et accepter les connexions. Par conséquent, si le serveur auquel vous essayez de vous connecter n’en a pas d’installé, vous ne pourrez pas y accéder en utilisant SSH.

D’une manière générale, presque tous les fournisseurs d’hébergement installent par défaut des démons SSH sur leurs serveurs. Ce problème particulier est plus fréquent sur un hébergement local ou des serveurs dédiés.

5. Les réglages du pare-feu empêchent une connexion SSH

Comme les ports ouverts présentent un risque de sécurité, les pare-feu installés pour protéger les serveurs des pirates informatiques bloquent parfois les connexions vers ces derniers. Malheureusement, cela signifie que même les utilisateurs inoffensifs qui essaient de faire du SSH sur leurs serveurs peuvent recevoir une erreur de refus de connexion en raison des réglages du pare-feu.

Si votre installation semble être en ordre et que vous ne pouvez toujours pas vous connecter, jetez un coup d’œil aux règles de votre pare-feu. Vous pouvez les afficher dans votre interface de ligne de commande à l’aide des commandes suivantes :

sudo iptables-save # display IPv4 rules
sudo ip6tables-save # display IPv6 rules

Vos résultats varieront, mais vous devrez rechercher ces éléments pour déterminer si votre pare-feu bloque les connexions SSH :

  • dport 22 : Il s’agit du port de destination, qui pour SSH est généralement le port 22 (rappel : Kinsta n’utilise pas ce numéro de port).
  • REJECT : Cela indiquerait que les correspondances sont refusées à partir de la destination spécifiée.
  • DROP : Comme REJETER, cela signifie que les connexions au port concerné sont bloquées.

Si vous recherchez dport 22 dans les résultats des commandes ci-dessus, vous devriez pouvoir déterminer si votre pare-feu empêche une connexion SSH. Si c’est le cas, vous devrez modifier les règles pour accepter les demandes.

Pourquoi PuTTY dit-il que la connexion est refusée ?

PuTTY est un client des SSH. Si vous connaissez le FTP, cette plate-forme est l’équivalent de FileZilla au SSH sur les machines Windows. En d’autres termes, PuTTY permet aux utilisateurs de saisir leurs identifiants et de lancer une connexion SSH :

Le site internet de PuTTY
Le site internet de PuTTY

Si vous êtes un utilisateur de PuTTY et que vous voyez l’erreur de refus de connexion, la cause est probablement l’une de celles énumérées ci-dessus.

C’est une erreur de connectivité SSH comme une autre, et les conseils de dépannage ci-dessous devraient fonctionner que vous utilisiez PuTTY, Terminal, ou tout autre programme pour vous connecter à votre serveur avec SSH.

Comment résoudre les erreurs de connectivité SSH ?

Lorsque vous êtes confronté à une erreur de connectivité SSH, vous pouvez prendre quelques mesures pour la résoudre, selon la cause. Voici quelques conseils pour dépanner les raisons d’une erreur de refus de connexion que nous avons évoquées plus haut :

  • Si votre service SSH est en panne. Contactez votre fournisseur d’hébergement pour savoir pourquoi votre service SSH ne fonctionne pas. Pour les hébergements locaux ou les serveurs dédiés, vous pouvez utiliser la commande sudo service ssh restart pour essayer de le faire fonctionner à nouveau.
  • Si vous avez saisi des données d’identification erronées. Une fois que vous avez vérifié le port SSH à l’aide de la commande grep Port /etc/ssh/sshd_config, essayez de vous connecter à nouveau avec les bonnes informations.
  • Si votre port SSH est fermé. Il s’agit généralement d’un effet secondaire de l’une des deux raisons énumérées ci-dessous. Soit vous installez un démon SSH sur le serveur auquel vous voulez vous connecter, soit vous modifiez les règles de votre pare-feu pour accepter les connexions à votre port SSH.
  • Si SSH n’est pas installé sur votre serveur. Installer un outil de SSH tel que OpenSSH sur le serveur auquel vous voulez vous connecter en utilisant la commande sudo apt install openssh-server.
  • Si votre pare-feu bloque votre connexion SSH. Désactivez les règles du pare-feu bloquant votre connexion SSH en modifiant les réglages du port de destination pour qu’elle soit ACCEPT.

Si vous essayez de vous connecter au serveur de votre fournisseur d’hébergement, il peut être plus sage de contacter le service d’assistance plutôt que d’essayer de résoudre le problème vous-même. Les utilisateurs sur des serveurs locaux ou dédiés peuvent trouver une aide supplémentaire sur des forums plus avancés si aucune des solutions ci-dessus ne fonctionne.

Résumé

Pouvoir se connecter à votre serveur avec SSH est pratique dans un grand nombre de situations. Cela peut vous permettre d’accéder à votre site lorsque vous êtes bloqué dans votre tableau de bord WordPress, exécuter des commandes via WP-CLI, suivre les changements de code de votre site avec Git, et plus encore.

Bien que plusieurs causes puissent être à l’origine de votre erreur de connectivité SSH, ce sont quelques-unes des plus courantes :

  1. Votre service SSH est en panne.
  2. Vous n’avez pas les bonnes informations.
  3. Le port que vous essayez d’utiliser est fermé.
  4. SSH n’est pas installé sur votre serveur.
  5. Les réglages du pare-feu empêchent une connexion SSH.