Sommaire
Dans ce tutoriel, nous allons voir comment créer une clé SSH puis la communiquer à un serveur distant pour obtenir une connexion sécurisé entre notre machine et l’hôte.
Qu’est ce qu’une clé SSH ?
SSH, ou Secure Shell, est nom de protocole qui permet de se connecter et d’administrer à distance une machine via des commandes par terminal. Cette technique a été mise en place pour sécuriser un maximum la communication entre deux machines par un processus chiffré et non par un simple mot de passe. La clé SSH authentifie une machine (client), qui doit être préalablement autorisée par le destinataire (hôte). Elle peut être créer par tout type de machine que ça soit sur linux, windows (à l’aide du logiciel PuTTy).
Lorsque l’on crée une clef SSH, nous en avons au final deux distinctes :
- Une clé publique pour les hôtes : que l’on intègre sur le ou les serveurs SSH distant(s)
- Une clé privée pour le client : que l’on garde dans sa propre machine et qu’il faut bien protéger
Créer une clé SSH
Créer une clé SSH sur linux ou mac OS
Dans un premier temps, il faut générer votre clé SSH en 4096 bits. Ouvrez votre terminal (en vous rendant dans Applications > Utilitaires > Terminal sur mac os) et lancez la commande :
ssh-keygen -t rsa -b 4096
Suite à cette commande, on vous demandera le chemin de sauvegarde des deux clés générées (clé publique et clé privée.
Laissez le chemin par défaut qui sera biensûr avec votre propre nom d’utilisateur puis en appuyez simplement sur entrée.
Ensuite, vous allez avoir ce message :
Enter passphrase (empty for no passphrase):
Ne mettez rien là non plus et appuyez sur entrée
Enter same passphrase again:
Faite la même chose pour valider la « passphrase » vide en appuyant de nouveau sur entrée.
Voila ce que vous devriez voir lorsque tout s’est bien passé.
Attention : la clée privée stockée dans le fichier id_rsa doit rester confidentielle alors que la clée publique dans le fichier id_rsa.pub peut être communiquée par exemple à une personne qui administre un serveur de type « Git » fonctionnant par clé SSH.
Pour obtenir sa clé publique afin de la communiquer voici ce qu’il faut taper :
cat .ssh/id_rsa.pub
La clé SSH publique ressemble à ceci, un ensemble de caractères commençant par ssh-rsa.
Autoriser une clé SSH sur sa propre machine
Imaginons que vous ayez votre propre serveur héberger sur votre machine et que vous souhaitez autoriser une clé SSH d’un tiers pour lui en donner les accès, il vous faudra rentrer sa clé publique dans votre fichier d’autorisation :
nano ~/.ssh/authorized_keys
Collez la clé SSH de la personne dans l’éditeur et faite contrôle + O pour sauvegarder er contrôle + X pour quitter.
Créer une clé SSH sur Windows
Suivante la version de votre windows, les méthodes sont différentes. La création avec le logiciel PuTTy fonctionne avec toutes les versions de windows. Pour Windows 10 et 11, un logiciel pré-installé du nom de Powershell vous permet de faire les mêmes manipulation que sur linux ou max os. En ce qui concerne Windows 7 et 8, le programme Git Bash
Créer une clé SSH avec PowerShell pour Windows 10 et 11
Powershell est intégré dans windows 10 et 11 mais il n’est pas forcément activer.
Pour le rendre actif suivez les étapes suivantes :
- Pour l’installer, cliquez sur le bouton Démarrer puis sur Paramètres.
- Cliquez sur Applications.
- Cliquez sur Fonctionnalités facultatives.
- Cliquez sur Afficher les fonctionnalités.
- Cochez la case devant Client OpenSSH puis cliquez sur le bouton Suivant.
- Cliquez sur Installer.
Pour la création de la clé SSH, elle est identique à celle pour linux et mac os évoquée dans ce tutoriel dans la partie « Créer une clef SSH sur linux ou mac OS ».
Créer une clé SSH avec Git Bash pour Windows 7 et 8
Avant de commencer, téléchargez le logiciel Git Bash pour windows et installez le.
Ouvrez Git et envoyez la commande suivante en remplaçant <username> par le nom d’utilisateur et <hostname> par l’ip du serveur (hostname):
ssh-copy-id <username>@<hostname>
Entrez ensuite le mot de passe de l’utilisateur du serveur distant.
L’opération est terminée, votre clé publique a bien été copiée dans le fichier ~/.ssh/authorized_keys du serveur distant !
Créer une clé SSH avec Putty pour Windows toutes versions confondus
Pour les utilisateurs de Windows, téléchargez le logiciel Putty et installez le.
Ouvrez PuTTygen.exe et non PuTTy.exe
Une fois ouvert, choisissez bien dans « Type of key generate », une clé de type « RSA« . Rentrez tout en bas a droite dans la case « Number of bits in a generated key » la valeur 4096 puis cliquez sur le bouton « Generate ».
Astuce : Pendant la génération de clé, bouger sous la barre de progression votre souris pour que l’opération se passe beaucoup plus vite.
Maintenant vos clés publique et privés sont générée. Sauvegardez chacun d’entre elles en cliquant sur leur bouton dédié « Save public key » et « Save private key ». Votre clé publique est visible directement dans la partie « Key ».
Envoyer la clé SSH vers votre serveur
La procédure suivante permet à votre serveur de vous identifier via la clé SSH que vous avez précédemment créée.
Si dans les paramètre de votre serveur, vous avez changé le port SSH qui est par défaut 22, il va falloir l’indiquer dans la commande suivante par -p nomduport, le cas échéant vous pouvez écrire ou non le port 22. N’oubliez pas de changer le chemin de votre machine pour le id_rsa.pub, le nom d’utilisateur distant qui est pour l’exemple « root » et l’ip du serveur. Voici un exemple :
cat "/Users/ItaliaStylz/.ssh/id_rsa.pub" | ssh -p 22 root@IPDUSERVEUR 'cat >> ~/.ssh/authorized_keys'
Vous devrez entrer le mot de de pass de l’utilisateur distant qui est pour cet exemple « root » pour cte exemple, puis valider cette étape.
Pour vous assurez que la commande soit bien passée, connectez vous à votre serveur par le protocole FTP par exemple et rendez-vous dans le répertoire caché .ssh/
Vous devriez trouver un fichier nommé authorized_keys qui comporte votre clé publique (client). Si vous y avez accès à ce fichier, vous pouvez directement la coller dans ce fichier de manière manuelle sans passer par la précédente commande.
Vérifier le bon fonctionnement de sa clé SSH à distance
Si vous voulez vérifier que la clé SSH fonctionne, ouvrez le terminal et écrivez la commande suivante en remplacant root par votre hostname et IPDUSERVEUR par vous l’avez compris, l’ip du serveur hôte :
ssh -p 22 root@IPDUSERVEUR
Dans le cas où tout fonctionne correctement vous devriez avoir un retour de message positif du serveur et obtenir une invite de commande de type :
root@serveur:~#
Vous pouvez désormais lancer vos commandes root en SSH sur votre serveur.