Vous vous êtes probablement déjà connecté à votre serveur d’hébergement via des interfaces graphiques type Plesk, cPanel, DirectAdmin ou d’autres. Dans cet article, nous allons apprendre à se connecter en SSH par échange de clés.
Pour des raisons de sécurité liées à votre serveur d’hébergement, nous vous conseillons de désactiver l’authentification par mot de passe et d’imposer l’authentification par clé SSH. Ainsi, le brute-force et la fuite de mot de passe n’auront aucune incidence puisque personne ne pourra s’authentifier sans le fichier de clé privée.
Qu’est ce que la connexion SSH par échange de clés publique/privée ?
La connexion SSH par échange de clés est une méthode de sécurisation de la connexion SSH (Secure Shell). Elle permet de s’authentifier sur un serveur distant en utilisant une paire de clés publique et privée au lieu d’un mot de passe. La clé publique est utilisée pour chiffrer les données, la clé privée est utilisée pour déchiffrer les données.
Pour se connecter à un serveur en utilisant SSH, le client envoie d’abord sa clé publique au serveur. Le serveur vérifie alors que la clé publique correspond à une clé privée qui a déjà été enregistrée sur le serveur. Si les clés correspondent, le serveur autorise la connexion et génère une session chiffrée entre le client et le serveur en utilisant la clé publique pour chiffrer les données envoyées et la clé privée pour déchiffrer les données reçues.
Il est possible d’ajouter une protection complémentaire à la clé privée en y associant une passphrase (mot de passe complexe) qui devra être saisie à chaque fois que vous utiliserez votre clé. Cela peut sembler fastidieux, mais cette protection supplémentaire permet de protéger votre clé privée si elle est volée ou perdue.
Créer une paire de clés SSH avec Linux
Si vous ne disposez pas encore de clé, il n’est pas trop tard ! Nous allons en générer une paire.
Dans votre terminal, entrez la commande suivante :
ssh-keygen -t ed25519 -C "login" -Z aes256-gcm@openssh.com
Important : Il est fortement recommandé d’utiliser Ed25519 pour une sécurité et des performances accrues. Cependant, si pour une raison quelconque vous ne pouvez pas utiliser ces clés, vous pouvez créer une clé RSA4096, comme option de secours, en utilisant la commande ssh-keygen -o -b 4096
Si vous appuyez sur entrée, la commande génèrera une paire de clés Ed25519 par défaut dans votre répertoire utilisateur ~/.ssh/ avec un nom id_ed25519 pour la clé privée et id_ed25519.pub pour la clé publique.
Vous pouvez également renommer cette paire dès que cela vous sera demandé :
Enter file in which to save the key (~/.ssh/id_ed25519):
Si vous voulez spécifier un autre nom pour la paire de clés dès la première commande, utilisez l’option -f suivie du nom de fichier souhaité, par exemple :
ssh-keygen -t ed25519 -C "login" -Z aes256-gcm@openssh.com -f mon_nom_de_fichier
Il vous sera demandé de saisir une phrase secrète pour protéger votre clé privée, vous pouvez laisser vide si vous ne voulez pas de mot de passe (déconseillé).
Enter passphrase (empty for no passphrase):
Puis confirmez votre passphrase :
Enter same passphrase again:
Ne négligez pas la protection de votre clé privée ! Changez les permissions pour que vous seul(e) puissiez y accéder :
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
Vous disposez désormais d’une paire de clés SSH générée et prête à être utilisée.
Créer une paire de clés SSH avec Windows (Putty)
Il est également possible de créer une paire de clés sur Windows avec le logiciel Putty. Démarrez l’outil « PuTTYgen » qui est inclus dans le package Putty et suivez les étapes suivantes pour générer votre paire de clés SSH :
- Téléchargez et installez Putty depuis le dépôt officiel : https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
- Ouvrez PuTTYgen en cliquant sur l’icône ou en tapant « puttygen » dans le menu démarrer.
- Sélectionnez « EdDSA » dans la liste déroulante « Type of key to generate »
- Cliquez sur « Generate » pour commencer à générer la paire de clés.
- Bougez votre souris autour de la zone vide pour ajouter de l’entropie au processus de génération de clés.
- Entrez un nom de fichier pour sauvegarder la clé privée, et un commentaire pour vous rappeler à quoi sert cette clé.
- Entrez un mot de passe pour protéger votre clé privée (recommandé).
- Cliquez sur « Save private key » pour sauvegarder la clé privée sur votre ordinateur.
- Cliquez sur « Save public key » pour sauvegarder la clé publique sur votre ordinateur.
Se connecter en SSH depuis un poste Linux
Pour se connecter à un serveur en utilisant SSH avec une clé privée depuis un poste Linux, vous pouvez utiliser la commande suivante :
ssh -i path/to/private_key user@host
Où « path/to/private_key » est le chemin vers votre clé privée, « user » est votre nom d’utilisateur sur le serveur, et « host » est l’adresse IP ou le nom d’hôte du serveur.
Avant de se connecter, il est possible que vous deviez d’abord autoriser votre clé publique sur le serveur, cela dépend de la configuration du serveur.
Si vous voulez éviter de taper le chemin complet à chaque fois, vous pouvez également ajouter un alias dans votre fichier .bashrc ou .bash_profile pour simplifier la commande :
alias myserver='ssh -i path/to/private_key user@host'
Vous pourriez alors vous connecter en tapant simplement myserver dans votre terminal.
Se connecter en SSH depuis un poste Windows
Pour se connecter depuis un poste Windows, vous aurez deux possibilités :
1. Activer le client SSH de Windows
Pour cela, rendez-vous dans les fonctionnalités facultatives du système d’exploitation.
Plus d’informations sur : https://learn.microsoft.com/fr-fr/windows/terminal/tutorials/ssh
Une fois cette application installée, les commandes sont exactement les mêmes que pour un poste Linux.
2. Se connecter en SSH avec Putty
La deuxième option consiste à utiliser le logiciel bien connu des administrateurs : Putty.
- Téléchargez et installez Putty depuis le dépôt officiel : https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
- Ouvrez PuTTY, entrez l’adresse IP ou le nom d’hôte du serveur auquel vous souhaitez vous connecter dans le champ « Hôte » et sélectionnez « SSH » dans le menu « Protocole ».
- Cliquez sur l’onglet « Auth » et sélectionnez le fichier de clé privée dans le champ « Private key file for authentication ».
Cliquez sur le bouton « Open » pour ouvrir une fenêtre de terminal et vous connecter au serveur en utilisant votre clé publique.
Conclusion : se connecter en SSH depuis Windows & Linux
Vous avez désormais tous les outils pour vous connecter et administrer votre serveur d’hébergement wordpress (ou autre) avec openSSH et de manière sécurisée ! N’oubliez pas de filtrer les IP autorisées à accéder à votre port 22 pour éviter toute tentative d’accès non autorisée.