Comment créer et installer des clés SSH à partir du shell Linux

Prenez la cybersécurité au sérieux et utilisez les clés SSH pour accéder aux connexions à distance. C’est un moyen plus sûr 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?

Secure Shell (SSH) est le protocole crypté utilisé pour se connecter aux comptes utilisateur sur des ordinateurs distants Linux ou de type Unix. En règle générale, ces comptes d’utilisateurs sont sécurisés à l’aide de 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 les moyens les plus courants 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écurisées et, une fois configurées, elles sont tout aussi faciles à utiliser que les 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 par paires. Les deux clés sont liées et sécurisées par cryptographie. L’un est votre clé publique et l’autre votre clé privée. Ils sont liés à votre compte utilisateur. Si plusieurs utilisateurs sur un même ordinateur utilisent des clés SSH, ils recevront chacun leur propre paire de clés.

Votre clé privée est installée dans votre dossier de départ (généralement) et la clé publique est installée sur l’ordinateur distant – ou les ordinateurs – auxquels vous devrez accéder.

Votre clé privée doit être conservée en lieu sûr. S’il est accessible à d’autres, vous êtes dans la même situation que s’ils avaient découvert votre mot de passe. Une précaution raisonnable – et fortement recommandée – est que votre clé privée soit chiffrée sur votre ordinateur avec un phrase secrète.

  Comment configurer un point d'accès Wi-Fi sur Linux

La clé publique peut être partagée librement sans aucun compromis pour votre sécurité. Il n’est pas possible de déterminer ce qu’est la clé privée à partir d’un examen de la clé publique. La clé privée peut chiffrer les messages que seule la clé privée peut déchiffrer.

Lorsque vous effectuez une demande de connexion, l’ordinateur distant utilise sa copie de votre clé publique pour créer un message chiffré. Le message contient un ID de session et d’autres métadonnées. Seul 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 renvoie ensuite son propre message chiffré à l’ordinateur distant. Entre autres choses, ce message chiffré contient l’ID de session qui a été reçu de l’ordinateur distant.

L’ordinateur distant sait maintenant que vous devez être celui que vous dites être car seule votre clé privée peut extraire l’ID de session du message envoyé à votre ordinateur.

Assurez-vous que vous pouvez accéder à l’ordinateur distant

Assurez-vous que vous pouvez vous connecter et vous connecter à distance à 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.

N’essayez pas de faire quoi que ce soit avec les clés SSH avant d’avoir vérifié que vous pouvez utiliser SSH avec des mots de passe pour vous connecter à l’ordinateur cible.

Dans cet exemple, une personne avec un compte utilisateur appelé dave est connectée à un ordinateur appelé howtogeek. Ils vont se connecter à un autre ordinateur appelé Sulaco.

Ils entrent la commande suivante:

ssh dave@sulaco

ssh dave @ sulaco dans une fenêtre de terminal

On leur demande leur mot de passe, ils le saisissent et ils sont connectés à Sulaco. Leur invite de ligne de commande change pour confirmer cela.

l'utilisateur dave s'est connecté à sulaco en utilisant ssh et un mot de passe

C’est toute la confirmation dont nous avons besoin. Ainsi, l’utilisateur Dave peut se déconnecter de Sulaco avec la commande exit:

exit

utilisateur dave déconnecté de sulaco

Ils reçoivent le message de déconnexion et leur invite de ligne de commande retourne à dave @ howtogeek.

  Comment modifier les icônes d'application, de fichier et de dossier sur un Mac

Création d’une paire de clés SSH

Ces instructions ont été testées sur les distributions Ubuntu, Fedora et Manjaro de Linux. Dans tous les cas, le processus était identique et il n’était pas nécessaire d’installer de nouveau logiciel sur aucune des machines de test.

Pour générer vos clés SSH, tapez la commande suivante:

ssh-keygen

ssh-keygen dans une fenêtre de terminal

Le processus de génération démarre. Il vous sera demandé où vous souhaitez stocker vos clés SSH. Appuyez sur la touche Entrée pour accepter l’emplacement par défaut. Les autorisations sur le dossier le sécuriseront pour votre usage uniquement.

Confirmation de l'emplacement de stockage de la clé ssh dans une fenêtre de terminal

Une phrase secrète vous sera maintenant demandée. Nous vous conseillons vivement de saisir une phrase secrète ici. Et rappelez-vous ce que c’est! Vous pouvez appuyer sur Entrée pour ne pas avoir de mot 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, fera une phrase de passe très robuste.

Demander la phrase de passe dans une fenêtre de terminal

Il vous sera demandé de saisir à nouveau la même phrase de passe pour vérifier que vous avez saisi ce que vous pensiez avoir saisi.

Les clés SSH sont générées et stockées pour vous.

Génération des clés terminée et illustration aléatoire affichée dans une fenêtre de terminal

Vous pouvez ignorer le «randomart» affiché. Certains ordinateurs distants peuvent vous montrer leur illustration aléatoire chaque fois que vous vous connectez. L’idée est que vous reconnaîtrez si l’art aléatoire change et que vous vous méfiez de la connexion car cela signifie que les clés SSH de ce serveur ont été modifiées.

Installation de 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 à l’ordinateur distant comme la commande ssh classique, mais au lieu de vous permettre de vous connecter, elle transfère la clé SSH publique.

ssh-copy-id dave@sulaco

ssh-copie-id dave @ sulaco

Bien que vous ne vous connectiez pas à l’ordinateur distant, vous devez tout de même vous authentifier à l’aide d’un mot de passe. L’ordinateur distant doit identifier le compte d’utilisateur auquel appartient la nouvelle clé SSH.

  Qu'est-ce qu'un bot Facebook Messenger?

Notez que le mot de passe que vous devez fournir ici est le mot de passe du compte utilisateur auquel vous vous connectez. Ce n’est pas la phrase secrète que vous venez de créer.

ssh-copy-id avec invite de mot de passe dans une fenêtre de terminal

Une fois le mot de passe vérifié, ssh-copy-id transfère votre clé publique vers l’ordinateur distant.

Vous êtes renvoyé à l’invite de commande de votre ordinateur. Vous n’êtes pas connecté à l’ordinateur distant.

clé pulic transférée avec succès dans une fenêtre de terminal

Connexion à l’aide de clés SSH

Suivez la suggestion et essayez de vous connecter à l’ordinateur distant.

ssh dave@sulaco

ssh dave @ sulaco dans une fenêtre de terminal

Étant donné que le processus de connexion nécessitera un accès à votre clé privée et que vous avez protégé vos clés SSH derrière une phrase de passe, vous devrez fournir votre phrase de passe pour que la connexion puisse se poursuivre.

boîte de dialogue de demande de phrase secrète

Entrez votre mot 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 à nouveau tant que vous aurez cette fenêtre de terminal ouverte. Vous pouvez vous connecter et vous déconnecter d’autant de sessions distantes que vous le souhaitez, sans avoir à saisir à nouveau votre phrase secrète.

Vous pouvez cocher la case de 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 se connecter aux ordinateurs distants qui possèdent votre clé publique.

Une fois que vous avez entré votre mot de passe, vous êtes connecté à l’ordinateur distant.

connexion ordinateur distant dans une fenêtre de terminal

Pour vérifier à nouveau le processus de bout en bout, déconnectez-vous avec la commande exit et reconnectez-vous à l’ordinateur distant à partir de la même fenêtre de terminal.

ssh dave@sulaco

Connexion et déconnexion de clé ssh dans une fenêtre de terminal

Vous 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’une chose appelée friction de sécurité. C’est la douleur mineure que vous devez supporter pour obtenir le gain de 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 ça. Ils préfèrent en fait une sécurité inférieure et le manque de friction. C’est 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 définitivement gagnant-gagnant.