Comment créer et installer des clés SSH depuis le shell Linux
Prenez la cybersécurité au sérieux et utilisez des clés SSH pour accéder aux connexions à distance. Elles sont un moyen plus sécurisé de se connecter que les mots de passe. Nous vous montrons comment générer, installer et utiliser des clés SSH sous Linux.
Quel est le problème avec les mots de passe ?
Le shell sécurisé (SSH) est le protocole crypté utilisé pour se connecter aux comptes utilisateurs sur des ordinateurs distants sous Linux ou de type Unix. En règle générale, ces comptes utilisateurs sont sécurisés par des mots de passe. Lorsque vous vous connectez à un ordinateur distant, vous devez fournir le nom d'utilisateur et le mot de passe du compte auquel vous vous connectez.
Les mots de passe sont le moyen le plus courant de sécuriser l'accès aux ressources informatiques. Malgré cela, la sécurité basée sur les mots de passe a ses défauts. Les gens choisissent des mots de passe faibles, partagent des mots de passe, utilisent le même mot de passe sur plusieurs systèmes, etc.
Les clés SSH sont beaucoup plus sûres, et une fois qu'elles sont configurées, elles sont tout aussi faciles à utiliser que des mots de passe.
Qu'est-ce qui rend les clés SSH sécurisées ?
Les clés SSH sont créées et utilisées en paires. Les deux clés sont liées et cryptographiquement sécurisées. L'une est votre clé publique, et l'autre est votre clé privée. Elles sont associées à votre compte utilisateur. Si plusieurs utilisateurs sur un seul ordinateur utilisent des clés SSH, chacun recevra sa propre paire de clés.
Votre clé privée est installée dans votre dossier personnel (généralement), et la clé publique est installée sur l'ordinateur distant---ou les ordinateurs---auxquels vous devez accéder.
Votre clé privée doit être gardée en sécurité. Si elle est accessible par d'autres, vous êtes dans la même situation que si ils avaient découvert votre mot de passe. Une précaution sensée---et fortement recommandée---est que votre clé privée soit cryptée sur votre ordinateur avec un mot de passe robuste.
La clé publique peut être partagée librement sans compromettre votre sécurité. Il n'est pas possible de déterminer ce qu'est la clé privée en examinant la clé publique. La clé privée peut chiffrer des messages que seule la clé privée peut déchiffrer.
Lorsque vous faites une demande de connexion, l'ordinateur distant utilise sa copie de votre clé publique pour créer un message chiffré. Le message contient un identifiant de session et d'autres métadonnées. Seulement l'ordinateur en possession de la clé privée---votre ordinateur---peut déchiffrer ce message.
Votre ordinateur accède à votre clé privée et déchiffre le message. Il envoie ensuite son propre message chiffré en retour à l'ordinateur distant. Entre autres choses, ce message chiffré contient l'identifiant de session qui a été reçu de l'ordinateur distant.
L'ordinateur distant sait maintenant que vous devez être qui vous prétendez être car seule votre clé privée pourrait extraire l'ID de session du message qu'il a envoyé à votre ordinateur.
Assurez-vous que vous pouvez accéder à l'ordinateur distant.
Assurez-vous que vous pouvez vous connecter à distance et vous connecter à l'ordinateur distant. Cela prouve que votre nom d'utilisateur et votre mot de passe ont un compte valide configuré sur l'ordinateur distant et que vos informations d'identification sont correctes.
Ne tentez rien avec les clés SSH tant que vous n'avez pas vérifié que vous pouvez utiliser SSH avec des mots de passe pour vous connecter à l'ordinateur cible.
Dans cet exemple, une personne ayant un compte utilisateur appelé dave est connectée à un ordinateur appelé
howtogeek. Ils vont se connecter à un autre ordinateur appelé Sulaco.
Ils saisissent la commande suivante :
ssh dave@sulacoOn leur demande leur mot de passe, ils le saisissent, et ils se connectent à Sulaco. Leur invite de commande change pour confirmer cela.
C'est toute la confirmation dont nous avons besoin. Donc, l'utilisateur dave peut se déconnecter de Sulaco avec la commande exit :
exitIls reçoivent le message de déconnexion et leur invite de commandement retourne à dave@howtogeek.
Créer une paire de clés SSH
Ces instructions ont été testées sur les distributions Linux Ubuntu, Fedora et Manjaro. Dans tous les cas, le processus était identique et il n'était pas nécessaire d'installer de nouveaux logiciels sur aucune des machines de test.
Pour générer vos clés SSH, tapez la commande suivante :
ssh-keygenLe processus de génération commence. On vous demandera où vous souhaitez que vos clés SSH soient stockées. Appuyez sur la touche Entrée pour accepter l'emplacement par défaut. Les autorisations sur le dossier le sécuriseront pour votre utilisation uniquement.
Vous allez maintenant être invité à entrer une phrase de passe. Nous vous conseillons fortement d'entrer une phrase de passe ici. Et souvenez-vous de ce que c'est ! Vous pouvez appuyer sur Entrée pour ne pas avoir de phrase de passe, mais ce n'est pas une bonne idée. Une phrase de passe composée de trois ou quatre mots non connectés, enchaînés ensemble, constituera une phrase de passe très robuste.
On vous demandera de saisir à nouveau le même mot de passe pour vérifier que vous avez bien tapé ce que vous pensiez avoir tapé.
Les clés SSH sont générées et stockées pour vous.
Vous pouvez ignorer le "randomart" qui est affiché. Certains ordinateurs distants peuvent vous montrer leur art aléatoire à chaque fois que vous vous connectez. L'idée est que vous reconnaîtrez si l'art aléatoire change, et vous serez méfiant de la connexion car cela signifie que les clés SSH pour ce serveur ont été modifiées.
Installer la clé publique
Nous devons installer votre clé publique sur Sulaco, l'ordinateur distant, afin qu'il sache que la clé publique vous appartient.
Nous faisons cela en utilisant la commande ssh-copy-id. Cette commande établit une connexion avec l'ordinateur distant comme la commande ssh ordinaire, mais au lieu de vous permettre de vous connecter, elle transfère la clé SSH publique.
ssh-copy-id dave@sulacoBien que vous ne soyez pas connecté à l'ordinateur distant, vous devez tout de même vous authentifier à l'aide d'un mot de passe. L'ordinateur distant doit identifier à quel compte utilisateur appartient la nouvelle clé SSH.
Veuillez noter que le mot de passe que vous devez fournir ici est celui du compte utilisateur sur lequel vous vous connectez. Ce n'est pas la phrase de passe que vous venez de créer.
Lorsque le mot de passe a été vérifié, ssh-copy-id transfère votre clé publique à l'ordinateur distant.
Vous êtes de retour à l'invite de commande de votre ordinateur. Vous n'êtes pas laissé connecté à l'ordinateur distant.
Connexion avec des clés SSH
Suivons la suggestion et essayons de nous connecter à l'ordinateur distant.
ssh dave@sulacoParce que le processus de connexion nécessitera l'accès à votre clé privée, et parce que vous avez protégé vos clés SSH par une phrase de passe, vous devrez fournir votre phrase de passe afin que la connexion puisse se poursuivre.
Entrez votre phrase de passe et cliquez sur le bouton Déverrouiller.
Une fois que vous avez entré votre phrase de passe dans une session de terminal, vous n'aurez plus à la saisir tant que cette fenêtre de terminal est ouverte. Vous pouvez vous connecter et vous déconnecter autant de sessions distantes que vous le souhaitez, sans avoir à entrer à nouveau votre phrase de passe.
Vous pourriez cocher la case pour l'option « Déverrouiller automatiquement cette clé chaque fois que je suis connecté », mais cela réduira votre sécurité. Si vous laissez votre ordinateur sans surveillance, n'importe qui peut établir des connexions avec les ordinateurs distants qui ont votre clé publique.
Une fois que vous avez entré votre phrase de passe, vous êtes connecté à l'ordinateur distant.
Pour vérifier le processus une fois de plus de bout en bout, déconnectez-vous avec la commande exit et reconnectez-vous à l'ordinateur distant depuis la même fenêtre de terminal.
ssh dave@sulacoVous serez connecté à l'ordinateur distant sans avoir besoin d'un mot de passe ou d'une phrase secrète.
Pas de mots de passe, mais une sécurité renforcée
Les experts en cybersécurité parlent d'un concept appelé friction de sécurité. C'est la légère douleur que vous devez supporter pour bénéficier d'une sécurité supplémentaire. Il y a généralement une ou deux étapes supplémentaires nécessaires pour adopter une méthode de travail plus sûre. Et la plupart des gens n'aiment pas cela. Ils préfèrent en fait une sécurité moindre et l'absence de friction. C'est dans la nature humaine.
Avec les clés SSH, vous bénéficiez d'une sécurité accrue et d'une plus grande commodité. C'est un véritable win-win.









