Clés SSH
Contexte
Nous ne sommes pas toujours face à un serveur pour nous connecter : la chose la plus courante est de devoir le faire à distance. Pour cela, nous disposons de différentes options en fonction du type du système d'exploitation.
L'une des meilleures méthodes et l'une des plus sécurisées vise à appliquer la connexion Secure Shell (SSH). La création d'une connexion cryptée entre vous et l'hôte distant va se produire, tout en ayant la garantie que les données soumises ne pourront être interceptées, et ce, de n'importe quelle manière.
La génération de clés SSH dans un environnement Windows était auparavant un processus compliqué qui nécessitait l'installation d'outils tiers, mais, avec la mise à jour de 2018, Windows est livré avec OpenSSH.
Par conséquent, dans ce cours, nous allons expliquer dans un premier temps à quoi servent les clés SSH et nous verrons comment les générer, puis dans un deuxième temps, nous aborderons la protection des clés privées.
À quoi servent les clés SSH ?
Il faut savoir que les clés SSH sont générées par paires : les clés privées et les clés publiques, toujours connectées. Et en aucun cas elles ne peuvent être utilisées seules.
C'est intéressant, car ce système évite de devoir saisir un mot de passe chaque fois que l'on veut accéder à un serveur particulier. Une fois la configuration réalisée, le processus est automatique.
Ce type de mot de passe réduit également le risque d'attaques par force, et empêche ainsi un attaquant potentiel de deviner correctement les informations d'identification.
Point important : nous ne devons pas envoyer le mot de passe sur le réseau. Le côté serveur se charge de vérifier que le client est légitime et autorise la connexion.
Remarque
Généralement, la clé publique reste sur le serveur distant afin de crypter la connexion. La clé privée est ensuite utilisée pour s'authentifier auprès de cet appareil distant, vous permettant comme il a été cité plus haut de vous connecter et de l'utiliser sans fournir de mot de passe.
On peut donc dire qu'il s'agit d'un outil intéressant pour créer un tunnel sécurisé sur le réseau et pouvoir effectuer des transferts entre le serveur et le client de manière sécurisée et cryptée.
Comment générer des clés SSH ?
La génération d'une clé SSH dans Windows 10 est très simple et rapide. Il vous suffit de suivre une série d'étapes, que nous allons mentionner dans ce cours. La première chose à faire est de s'assurer que le client OpenSSH est installé sur notre système. C'est généralement le cas, mais il est facile de le vérifier.
Pour savoir si le client OpenSSH est installé sur Windows 10, il faut aller dans Démarrer, puis dans Paramètres, puis Système et une fois que nous y sommes, nous devons accéder à Fonctionnalités facultatives. OpenSSH devrait apparaître là, comme nous pouvons le voir dans l'image.
Complément
Si toutefois OpenSSH n'est pas intégré, il faudra l'installer. Pour cela, il faudra aller sur Ajouter une fonctionnalité : cette option apparaît tout en haut de la fenêtre avant les Fonctionnalités installées. Il faudra ensuite sélectionner OpenSSH pour l'ajouter. Une fois l'installation terminée, il sera nécessaire de redémarrer l'ordinateur afin de vérifier que OpenSSH soit installé. À partir de là, il faudra suivre les étapes mentionnées ci-dessus.
Générer une clé SSH publique et privée
Méthode
Voici les étapes à suivre pour créer nos clés publiques et privées.
1. Ouvrir PowerShell :
Une fois dans PowerShell, nous devons taper la commande suivante : ssh-keygen -t ed25519.
ssh-keygen est un outil qui permet la création de nouvelles paires de clés d'authentification pour SSH. Ces paires de clés sont utilisées pour automatiser les connexions, l'authentification unique, et pour authentifier les hôtes.
Et la commande que nous venons de taper nous indique où nous voulons générer nos clés et où elles seront enregistrées après cette commande. On fait ensuite Entrée pour utiliser l'emplacement par défaut.
2. passphrase :
Maintenant, il nous est proposé d'ajouter une phrase secrète (passphrase). Ceci est une sécurité (cryptage de la clé privée du PC) dans le cas où nous souhaitons nous connecter via SSH. Dans notre cas, nous allons en ajouter une qui sera : studitest.
Une fois terminé, tapez sur Entrée et confirmez le passphrase, puis faites Entrée de nouveau.
Si nous voulons maintenant vérifier comment les clés ont été générées, nous devons exécuter la commande suivante : ls .SSH. Cette commande nous montrera les deux fichiers créés : un avec la clé publique et l'autre avec la clé privée.
Protection des clés privées
Comment protéger les clés privées ?
Il convient de noter que les fichiers de clés privées sont des fichiers de mots de passe uniques, ce qui signifie qu'ils sont immuables, contrairement aux fichiers publics. C'est pourquoi il est nécessaire de les protéger.
Nous utiliserons la commande ssh-agent afin de stocker chacune des clés privées. Il faudra alors mettre en marche le service ssh-agent en tant qu'administrateur, mais aussi ssh-add afin de pouvoir stocker nos clés privées.
Activation et démarrage des services
1. ssh-agent
Nous allons commencer à exécuter la commande qui suit : elle nous permet d'activer manuellement le service ssh-agent, car il est désactivé par défaut, ce qui nous permettra de poursuivre les étapes suivantes :
Get-Service ssh-agent | Set-Service -StartupType Manual
Complément
Rappelez-vous que, dans chaque processus que nous exécutons, nous devons être en mode Administrateur dans notre PowerShell. Dans le cas contraire, nous ne serons pas en mesure d'exécuter une commande, parce que nous n'aurons pas les droits.
Méthode
2. Démarrage du service SSH-agent :
Après avoir appliqué la commande ci-dessus, nous pouvons maintenant démarrer notre service ssh-agent avec la commande suivante :
Start-Service ssh-agent
Dans le screen ci-dessous, nous pouvons constater que tout est appliqué sans erreur, ce qui signifie que tout est correctement configuré.
3. L'état de ssh-agent :
La commande suivante va nous indiquer l'état de notre service démarré, c'est-à-dire notre ssh-agent. Comme nous pouvons le voir, notre agent est en exécution, ce qui signifie que tout va bien.
Get-Service ssh-agent
4. Chargement du fichier de clés :
Après avoir effectué toutes les autres étapes, nous chargerons nos fichiers de clés dans ssh-agent. Nous chercherons notre fichier de clé privée à l'aide de la commande ci-dessous :
SSH-add C:\Users\tito2\SSH\id_ed25519
Cette commande va permettre de chercher notre fichier établi lorsque nous avons généré nos clés. Dans mon cas, elles ont été générées dans User\tito2, mais vous devez chercher où il a été enregistré.
Remarque
Après avoir appuyé sur la touche entrée, il vous sera demandé d'entrer votre passphrase. Dans le cas de la démonstration, c'était studitest.
Fondamental
Le protocole SSH fournit une méthode sécurisée de connexion à un serveur privé virtuel à l'aide d'un nom d'utilisateur et d'un mot de passe. Le problème de ce système est que le mot de passe pourrait être saisi par n'importe quel attaquant, ce qui mettrait en danger les informations stockées à l'intérieur, d'où l'importance d'utiliser des clés SSH qui, contrairement aux mots de passe, sont pratiquement impossibles à craquer.