Un mot de passe est un secret unique. Quiconque le possède peut se connecter, et il peut être deviné, obtenu par hameçonnage, réutilisé à partir d'une fuite ailleurs ou trouvé par force brute avec assez d'essais. Une paire de clés SSH fonctionne autrement, et cette différence explique pourquoi les clés sont la façon recommandée d'accéder à un serveur, et pas seulement une alternative plus technique.
Comment fonctionnent les clés SSH
Une paire de clés a deux moitiés : une clé privée qui ne quitte jamais votre ordinateur, et une clé publique que vous téléversez sur le serveur. À la connexion, le serveur envoie un défi cryptographique auquel seule la clé privée correspondante peut répondre. Votre clé privée n'est jamais envoyée sur le réseau : il n'y a donc rien à intercepter pour un attaquant, même sur une connexion compromise.
Pourquoi c'est mieux qu'un mot de passe
- Rien à deviner ni à forcer. Un mot de passe est une chaîne qu'un attaquant peut tenter de deviner. Une clé moderne est une preuve cryptographique qu'il n'a tout simplement pas.
- Elle ne peut pas être réutilisée depuis une fuite. Les mots de passe sont réutilisés d'un site à l'autre et divulgués lors de fuites sans rapport. Une paire de clés est générée à neuf et n'est liée à rien d'autre.
- La révocation est immédiate et propre. Retirer une clé publique du serveur coupe cet accès aussitôt, sans changer un mot de passe que d'autres personnes ou outils utilisent aussi.
- La clé privée peut avoir une phrase secrète. Si le fichier de clé est copié hors de votre machine, il reste inutilisable sans la phrase secrète, une seconde couche qu'un simple mot de passe n'a pas.
- Elle résiste aux attaques de connexion que subissent les sites WordPress. Les essais incessants décrits dans le guide sur la force brute n'ont aucun sens contre un service qui n'accepte que des clés.
Comment passer à l'accès par clé
1. Créez une paire de clés. Sur macOS, Linux ou Windows 10 et suivants (PowerShell), lancez :
ssh-keygen -t ed25519 -C "mon-portable"
Acceptez l'emplacement par défaut et définissez une phrase secrète quand elle est demandée. Cela crée une clé privée (id_ed25519) et une clé publique (id_ed25519.pub). Ne partagez et ne téléversez jamais la privée. Sur un Windows plus ancien, PuTTYgen fait le même travail.
2. Ajoutez la clé publique chez votre hébergeur. Dans cPanel, ouvrez Accès SSH, puis Gérer les clés SSH, choisissez Importer une clé et collez le texte de la clé publique. Après l'import, cliquez sur Gérer à côté de la clé puis sur Autoriser. Les autres hébergeurs ont une section « Clés SSH » ou « Accès SSH » qui fonctionne de la même façon. Sur un VPS, vous ajoutez plutôt la ligne à ~/.ssh/authorized_keys.
3. Testez. Connectez-vous avec ssh -i ~/.ssh/id_ed25519 utilisateur@votreserveur, en ajoutant -p et le port si votre hébergeur en utilise un non standard. Assurez-vous que la clé fonctionne avant de changer quoi que ce soit d'autre, pour ne pas vous enfermer dehors.
4. Ensuite, désactivez la connexion par mot de passe si vous contrôlez le serveur. Sur un VPS, réglez PasswordAuthentication no dans la configuration du serveur SSH et rechargez-la. Sur un hébergement mutualisé, vous ne pouvez généralement pas le modifier : appuyez-vous alors sur la clé et sur un mot de passe de compte robuste et unique.
Bonnes habitudes avec les clés
- Utilisez une clé par appareil et par usage. Une clé distincte pour chaque portable et chaque service limite les dégâts si l'une est perdue et permet d'en révoquer une sans casser les autres.
- Gardez une phrase secrète sur chaque clé privée, et utilisez un agent SSH pour ne la saisir qu'une fois par session.
- Nommez clairement les clés pour savoir dans un an à quel outil ou à quelle personne chacune appartient.
- Supprimez les clés que vous n'utilisez plus. Passez en revue la liste autorisée quand une personne part ou qu'un portable est mis au rebut.
- Sauvegardez la clé privée en sécurité, ou soyez prêt à en générer une nouvelle. Si vous la perdez, vous la remplacez ; rien ne change sur le serveur sauf la liste autorisée.
Et si mon hébergeur n'a pas de SSH ?
La plupart des hébergeurs mutualisés, VPS et WordPress gérés prennent en charge SSH, même si certaines offres mutualisées économiques le restreignent. Si c'est le cas de la vôtre, SFTP avec un mot de passe robuste et unique, idéalement avec une connexion à deux facteurs sur le compte d'hébergement, est la meilleure solution suivante. Consultez le guide d'installation pour voir à quoi ressemble l'accès SSH selon le type d'hébergeur.
SiftWP se connecte de la même façon : avec une clé SSH dédiée, créée spécialement pour lui et importée via le panneau de contrôle de votre hébergeur. Il ne voit jamais le mot de passe administrateur de WordPress ni le mot de passe principal de votre compte d'hébergement. La clé donne un accès shell à ce seul compte, jamais aux commandes à l'échelle du serveur, et vous pouvez la révoquer à tout moment en supprimant cette unique clé dans cPanel.