Si vous passez suffisamment de temps dans un environnement informatique et avec l’essor des infrastructures en cloud telles que AWS, vous rencontrerez probablement le terme « clés SSH ». Si vous avez déjà rencontré ce terme informatique, vous vous demandez peut-être ce que sont les clés SSH.
Les clés SSH (Secure Shell) sont des justificatifs d’accès utilisés dans le protocole SSH et sont à la base des plateformes modernes d’infrastructure en tant que service, telles que AWS, Google Cloud et Azure.
Avant d’expliquer ce que sont les clés SSH exactement, jetons un coup d’œil rapide au protocole SSH.
L’histoire du protocole SSH
La première version du protocole SSH a été développée au cours de l’été 1995 par Tatu Ylonen. Tatu était chercheur à l’université d’Helsinki lorsqu’une attaque par reniflage a été découverte sur le réseau de l’université. Une attaque par reniflage intercepte et enregistre le trafic qui a lieu sur un réseau et peut fournir aux attaquants des noms d’utilisateur et des mots de passe qui peuvent ensuite être utilisés pour accéder à des ressources informatiques critiques.
Des milliers d’informations d’identification ont été touchées, y compris celles appartenant à des partenariats communautaires. Cette attaque par reniflage a incité Tatu à chercher comment rendre les réseaux plus sûrs, ce qui a conduit à la création du protocole SSH (SSH.com).
Aujourd’hui, le protocole SSH est largement utilisé pour se connecter à distance d’un système à un autre, et son chiffrement fort le rend idéal pour effectuer des tâches telles que l’émission de commandes à distance et la gestion à distance de l’infrastructure réseau et d’autres composants vitaux du système. Cela est particulièrement important à l’ère de l’infrastructure en cloud et du télétravail.
Pour utiliser le protocole SSH, quelques logiciels doivent être installés. Les systèmes distants doivent avoir un logiciel appelé démon SSH, et le système utilisé pour envoyer des commandes et gérer les serveurs distants doit avoir un logiciel appelé client SSH. Ces logiciels sont nécessaires pour créer un canal de communication approprié en utilisant le protocole SSH (DigitalOcean).
Essentiellement, les clés SSH sont une méthode d’authentification utilisée pour accéder à une connexion chiffrée entre des systèmes et, ultimement, utiliser cette connexion pour gérer le système distant.
Que sont les clés SSH ?
Les clés SSH existent en plusieurs tailles, mais un choix populaire est un chiffrement RSA 2048 bits, ce qui est comparable à un mot de passe long de 617 chiffres. Sur les systèmes Windows, il est possible de générer votre propre paire de clés SSH en téléchargeant et en utilisant un client SSH comme PuTTY.
Sur les systèmes Mac et Linux, il est possible de générer une paire de clés SSH à l’aide d’une fenêtre de terminal. Regardez la vidéo ci-dessous pour découvrir comment générer votre propre paire de clés RSA sur Mac et Linux.
Les clés SSH sont toujours présentées par paires, et chaque paire est composée d’une clé privée et d’une clé publique. La personne ou l’objet qui possède ces clés détermine le type de paire de clés SSH. Si la clé privée et la clé publique restent en possession de l’utilisateur, cet ensemble de clés SSH est appelé clé utilisateur.
Si les clés privées et publiques se trouvent sur un système distant, cette paire de clés est appelée clé hôte. Un autre type de clé SSH est une clé de session. Lorsqu’une grande quantité de données est transmise, les clés de session sont utilisées pour chiffrer ces informations.
Voyons maintenant de plus près comment fonctionnent une clé privée et une clé publique. Pour rester simple, nous allons nous concentrer sur le fonctionnement des clés utilisateur.
Comment fonctionnent les clés utilisateur
Dans un jeu de clés utilisateur, la clé privée reste sur le système utilisé pour accéder au système distant (c’est-à-dire l’ordinateur de bureau ou portable de l’utilisateur) et est utilisée pour déchiffrer les informations échangées dans le protocole SSH.
Les clés privées ne doivent jamais être partagées avec quiconque et doivent être sécurisées sur un système – c’est-à-dire que le système est sécurisé (chiffrement complet du disque, MFA), en possession de l’utilisateur, et la clé privée est sécurisée par une phrase de passe.
Une clé publique est utilisée pour chiffrer des informations, elle peut être partagée et est utilisée par l’utilisateur et le serveur distant. Du côté du serveur, la clé publique est enregistrée dans un fichier qui contient une liste des clés publiques autorisées. Du côté de l’utilisateur, la clé publique SSH est enregistrée dans un logiciel de gestion des clés SSH ou dans un fichier sur son ordinateur.
Utilisation des clés SSH
Premières étapes – Génération de clés SSH
Avant de commencer à utiliser les clés SSH, vous devez d’abord générer votre propre paire de clés SSH sur le système que vous souhaitez utiliser pour accéder à un système distant. Veuillez consulter les instructions ci-dessous.
Instructions pour Mac/Linux :
Recommandé : Installez ou mettez à jour OpenSSH
sudo apt-get update
sudo apt-get install openssh-server
Tout d’abord, chargez un terminal de ligne de commande et tapez la commande suivante :
Vos deux fichiers de clés seront créés dans le répertoire /HOME/.ssh/ par défaut, y compris votre clé privée, mais vous pouvez spécifier un emplacement direct. Ne partagez jamais votre clé privée.
$HOME/.ssh/id_rsa.pub (public key
$HOME/.ssh/id_rsa (private net)
Comme indiqué ci-dessus, vous aurez la possibilité de définir une phrase de passe afin de rendre plus difficile la connexion d’utilisateurs non autorisés à vos comptes en protégeant la confidentialité de vos paires de clés.
Votre clé publique est téléchargée sur votre serveur afin d’utiliser l’authentification par clé SSH pour le contrôle d’accès. La commande ssh-copy-id, qui fait partie du paquetage OpenSSH, peut être utilisée pour automatiser le processus de transfert dans la syntaxe de :
ssh-copy-id username@host
Vous pouvez également ajouter la clé à votre compte en utilisant JumpCloud, ou en plaçant manuellement la clé publique SSH sur le serveur distant (DigitalOcean).
Mac et Linux avec CLI – jumpcloud-1
Instructions pour Windows:
Téléchargez et installez le programme PuTTY SSH keygen.
- Chargez le programme PuTTYgen
- Cliquez sur le bouton Generate et sélectionnez RSA (SSH-2).
- Vous pouvez opter pour une clé de 4096 bits, mais certaines applications peuvent ne pas l’accepter et cela peut entraîner une utilisation accrue du processeur pendant le processus de « poignée de main ».
- Saisissez une phrase de passe pour une sécurité supplémentaire.
- Vous devez sélectionner Save private key et spécifier un emplacement.
- Ne pas partager ce fichier avec des personnes non autorisées.
- Vous pouvez copier et coller votre clé publique dans le champ ci-dessus en utilisant la fonction Select All ou en cliquant sur le bouton Save public key.
- Vous pouvez ajouter la clé à votre compte en utilisant JumpCloud.
Windows SSH Pair Keygen en utilisant PuTTY – jumpcloud-1
Comment fonctionne l’authentification par clé SSH
Après avoir effectué les étapes mentionnées ci-dessus, utilisez votre terminal pour entrer votre nom d’utilisateur SSH et l’adresse IP du système distant dans le format suivant : ssh username@my_ip_address. Cela permettra d’établir une connexion avec le système distant en utilisant le protocole SSH.
Le protocole et le nom d’utilisateur spécifié indiquent alors au serveur distant la clé publique à utiliser pour vous authentifier. Le serveur distant utilise ensuite cette clé publique pour chiffrer un message de défi aléatoire qui est renvoyé au client. Ce message de défi est déchiffré à l’aide de la clé privée de votre système.
Une fois le message déchiffré, il est combiné à un identifiant de session préalablement établi, puis renvoyé au serveur. Si le message correspond à ce que le serveur a envoyé, le client est authentifié et vous aurez accès au serveur distant. Ce processus prouve au serveur que vous possédez la clé privée correspondant à la clé publique qu’il a dans ses dossiers.
Toutefois, la sécurité que procure ce processus d’authentification peut être compromise lorsque les clés SSH ne sont pas gérées correctement.
Gestion des clés SSH
Il est impératif de mettre en place une gestion appropriée des clés SSH, car elles permettent souvent d’accéder à des actifs numériques essentiels à la mission. En outre, les entreprises ont tendance à posséder un grand nombre de clés SSH. En fait, les entreprises du classement Fortune 500 en possèdent souvent plusieurs millions.
Gérer manuellement des millions de clés SSH est une tâche qui présente un niveau de complexité extrêmement élevé. Pourtant, on oublie souvent qu’il est possible de mettre en place un système pouvant gérer ces clés SSH plus facilement. SSH.com a fait quelques recherches et a découvert une entreprise qui possédait 3 millions de clés SSH « donnant accès à des serveurs de production en direct.
Parmi celles-ci, 90% n’étaient plus utilisées. L’accès root était accordé par 10% des clés ». Un système efficace de gestion des clés SSH aurait permis de réduire considérablement ce risque de sécurité.
Les services informatiques disposent de plusieurs options pour contrôler les clés SSH dans leur environnement. L’une d’entre elles consiste à utiliser un outil de gestion des clés SSH. Cependant, cela signifie que nous devons gérer une plateforme supplémentaire, en plus de la gestion d’un fournisseur de SSO, d’un service d’annuaire et peut-être d’une solution de gestion du système. Mais une nouvelle solution a vu le jour, qui offre une deuxième option aux services informatiques : la plateforme d’annuaire JumpCloud.
Cloud IAM offre la gestion des clés SSH
Cette solution cloud de gestion des identités et des accès fournit au service informatique un lieu central pour gérer les clés SSH. En outre, le service informatique peut également centraliser l’authentification des utilisateurs sur les appareils Mac, Linux et Windows, les serveurs en cloud, les réseaux câblés et WiFi, les applications Web et sur site, ainsi que le stockage virtuel et sur site. Avec un seul endroit central pour gérer l’authentification d’un utilisateur à toutes ses ressources, il suffit de quelques clics pour déprovisionner les utilisateurs de toutes leurs ressources, y compris l’accès par clé SSH aux systèmes distants.
En savoir plus sur la gestion des clés SSH avec JumpCloud
N’hésitez pas à nous contacter si vous souhaitez obtenir plus d’informations sur la façon dont la plateforme d’annuaire de JumpCloud peut simplifier votre gestion des clés SSH. Si vous êtes prêt à commencer à tester notre plateforme IAM moderne, inscrivez-vous pour un essai gratuit de 30 jours.