Si vous avez l’habitude de travailler avec plusieurs serveurs de type Linux (Ubuntu, Debian, etc.) vous utilisez peut-être déjà une clé SSH personnelle afin de pouvoir vous connecter sur chacun de vos serveurs. Cela vous permet d’éviter de définir plein de mots de passe différents (et d’avoir à les mémoriser pour chaque VM).
Si vous gériez déjà des serveurs avant l’avènement des fournisseurs de Cloud public il peut être intéressant d’importer votre clé SSH personnelle dans votre fournisseur d’accès plutôt que d’en créer une nouvelle. C’est-ce que je vous propose de voir dans cet article.
Génération de votre clé SSH
Pour ma part, je suis sous Windows. Dans une précédent article, je vous avais montré comment installer le client SSH sous Windows 10. Certes en Béta pour l’instant, il vous permet de pouvoir utiliser la commande SSH depuis votre fenêtre PowerShell. Mais on va supposer que vous utilisez PuTTY. Si ce n’est pas déjà le cas, vous pouvez vous procurer le logiciel en cliquant sur le lien suivant.
Une fois que c’est installé, cherchez et démarrez l’application PuTTYGen (pour PuTTY Key Generator).
Dans la fenêtre qui s’ouvre, cliquez sur le bouton Generate et déplacez votre souris dans la zone vide de l’application jusqu’à la fin du processus. Une fois que c’est terminé, vous pourrez alors sauvegarder votre clé public et votre clé privée.
La clé publique correspond à l’information que vous communiquez à vos fournisseurs et donc sur les serveurs distants. Tandis que la clé privée quant à elle, est la partie qui reste secrètement sur votre ordinateur et vous permettra de vous identifier. Vous ne devez donc pas la partager ! 😉
Par défaut, lorsque vous vous identifierez avec cette clé SSH, vous n’aurez pas besoin de saisir un mot de passe. Si vous souhaitez tout de même utiliser un mot de passe, remplissez les 2 champs intitulés key passphrase. En termes de sécurité, c’est quand même mieux ! 🙂
Nommez les 2 fichiers comme vous le souhaitez et enregistrez les quelque part. Nous en aurons besoin pour la suite.
Maintenant, avec cette unique clé SSH vous pourrez vous authentifier sur toutes vos machines. Je vous propose de regarder maintenant comment importer cette clé SSH dans les machines que vous pourriez générer sur Microsoft Azure, Amazon AWS ou encore Google Cloud Platform.
Importer votre clé SSH sur Amazon AWS
Une fois connecté sur la console AWS, rendez-vous dans la gestion de vos Paire de clés.
Puis, cliquez sur le bouton en haut Importer une paire de clés. Sélectionner le fichier correspondant à votre clé publique et importez là sur AWS.
Désormais au moment de la création d’une nouvelle instance EC2, vous aurez la possibilité de sélectionner votre clé SSH personnelle dans un menu déroulant.
Désormais, pour vous identifier automatiquement et rapidement sur votre instance EC2 il vous suffit de cliquer sur le fichier correspondant à votre clé privée. Cela ouvre automatiquement une session PuTY tout en chargeant votre clé privée.
Il ne vous reste alors plus qu’à compléter avec l’adresse IP correspondant à votre instance et le login par défaut. Si vous avez utilisé Amazon Linux comme OS, rappelez-vous que l’identifiant par défaut est ec2-user. 🙂
Et voilà, plus besoin de mémoriser plusieurs mots de passe pour chaque serveur. Vous êtes automatiquement identifié sur votre machine.
L’avantage est que vous pouvez accéder à toutes vos machines avec la même clé SSH. Attention, cela veut aussi dire que si votre clé privée est compromise, ce sont potentiellement toutes les machines sur lesquelles vous l’avez installée qui sont également compromises.
Importer une clé SSH sur Azure
Le concept est tout à fait semblable à AWS. La seule différence c’est que vous devrez spécifier à chaque création de VM la clé publique correspondante à votre clé SSH.
Pour ce faire, ouvrez le fichier correspondant à la clé publique avec un éditeur de texte et copiez l’ensemble du contenu sur Azure au niveau du champ SSH public key à chaque création de VM.
Essayez maintenant de vous connecter en SSH avec votre clé sur votre instance Azure. Notez qu’il y a une petite différence avec AWS, le login n’est pas choisi par défaut, mais vous le sélectionnez vous-même dans le champ juste au dessus User name.
Double-cliquez sur votre clé privée. Dans la fenêtre PuTTY, indiquez l’adresse IP correspondant à votre VM Azure et votre identifiant… Vous voici connecté !
Importer une clé SSH sur Google Cloud
Même concept que sur Azure, lors de la création de votre instance Google Compute Engine, regardez du côté des options avancées et cherchez la section Clés SSH.
La seule différence est que pour ma part, je n’ai pas pu directement prendre le fichier que j’avais précédemment créé avec PuTTY Key Generator lorsque j’avais enregistré ma clé publique.
Pour contourner ce problème, il vous suffit de cliquer du bouton droit sur votre clé privée et sélectionner l’option Edit with PuTTYgen. Et copiez-collez la partie supérieure de la fenêtre sur Google Cloud Platform.
Sur Google Cloud, le principe est plutôt utiliser la page web du navigateur y compris pour votre session SSH. Si vous souhaitez malgré tout accéder à votre instance de Google Cloud en PuTTY, connectez-vous avec l’interface web et exécutez la commande whoami pour savoir quel est le login par défaut.
Dans cet exemple, cela correspond à la dernière séquence de la clé SSH et donc : imported-openssh-key (pour changer cela modifiez la fin de la séquence que nous avons copié dans Google Cloud lors de la création de l’instance).
Encore une fois, double-cliquez sur votre clé privée puis dans la zone de notification cliquez sur l’icône PuTTY et sélectionnez New session. Dans la fenêtre PuTTY, indiquez l’adresse IP publique de votre instance GCP et utilisez le login précédemment mentionné.
Vous voici connecté. 🙂
Conclusion
Avec une seule clé SSH, vous pouvez donc accéder et vous connecter sur tous vos serveurs indépendamment de la solution Cloud que vous souhaitez utiliser.
Bien évidemment, cela fonctionnerait également avec DigitalOcean ou encore Vulkr (et bien d’autres). Cherchez simplement l’endroit où copier-coller votre clé publique ! 🙂