Bienvenue dans notre guide ultime de configuration des clés SSH (Secure Shell). Ce didacticiel vous expliquera les bases de la création de clés SSH, ainsi que la gestion de plusieurs clés et paires de clés.
Créer une nouvelle paire de clés SSH
Ouvrez un terminal et exécutez la commande suivante:
ssh-keygen
Vous verrez le texte suivant:
Generating public/private rsa key pair. Enter file in which to save the key (/home/username/.ssh/id_rsa):
Appuyez sur Entrée pour enregistrer vos clés dans le /home/username/.ssh
répertoire par défaut .
Ensuite, vous serez invité à entrer un mot de passe:
Enter passphrase (empty for no passphrase):
Il est recommandé de saisir un mot de passe ici pour une couche de sécurité supplémentaire. En définissant un mot de passe, vous pouvez empêcher l'accès non autorisé à vos serveurs et comptes si quelqu'un met la main sur votre clé SSH privée ou sur votre machine.
Après avoir entré et confirmé votre mot de passe, vous verrez ce qui suit:
Your identification has been saved in /home/username/.ssh/id_rsa. Your public key has been saved in /home/username/.ssh/id_rsa.pub. The key fingerprint is: SHA256:/qRoWhRcIBTw0D4KpTUyK6YepyL6RQ2CQrtWsaicCb4 [email protected] The key's randomart image is: +---[RSA 2048]----+ | .o=+.... | |+.*o+o . | |+X.=o o | |@.=.oo . | |=O ...o S | |o.oo . . | |.E+ . . . . | |oo . ... + | |=.. .o. . . | +----[SHA256]-----+
Vous disposez désormais d'une paire de clés SSH publique et privée que vous pouvez utiliser pour accéder aux serveurs distants et pour gérer l'authentification pour les programmes de ligne de commande comme Git.
Gérer plusieurs clés SSH
Bien qu'il soit considéré comme une bonne pratique de n'avoir qu'une seule paire de clés publique-privée par appareil, vous devez parfois utiliser plusieurs clés ou vous avez des noms de clés peu orthodoxes. Par exemple, vous pouvez utiliser une paire de clés SSH pour travailler sur les projets internes de votre entreprise, mais vous pouvez utiliser une clé différente pour accéder aux serveurs d'un client. En plus de cela, vous utilisez peut-être une autre paire de clés pour accéder à votre propre serveur privé.
La gestion des clés SSH peut devenir fastidieuse dès que vous devez utiliser une deuxième clé. Traditionnellement, vous utilisiez ssh-add
pour stocker vos clés ssh-agent
, en tapant le mot de passe pour chaque clé. Le problème est que vous devrez le faire à chaque redémarrage de votre ordinateur, ce qui peut rapidement devenir fastidieux.
Une meilleure solution consiste à automatiser l'ajout de clés, à stocker les mots de passe et à spécifier la clé à utiliser lors de l'accès à certains serveurs.
SSH config
Entrez SSH config
, qui est un fichier de configuration par utilisateur pour la communication SSH. Créez un nouveau fichier: ~/.ssh/config
et ouvrez-le pour le modifier:
nano ~/.ssh/config
Gestion de la clé SSH nommée personnalisée
La première chose que nous allons résoudre en utilisant ce config
fichier est d'éviter d'avoir à ajouter des clés SSH personnalisées à l'aide de ssh-add
. En supposant que votre clé SSH privée est nommée ~/.ssh/id_rsa
, ajoutez ce qui suit au config
fichier:
Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes
Ensuite, assurez-vous que ce ~/.ssh/id_rsa
n'est pas le cas en ssh-agent
ouvrant un autre terminal et en exécutant la commande suivante:
ssh-add -D
Cette commande supprimera toutes les clés de la ssh-agent
session actuellement active .
Maintenant, si vous essayez de fermer un référentiel GitHub, votre config
fichier utilisera la clé à ~/.ssh/ida_rsa
.
Voici quelques autres exemples de configuration utiles:
Host bitbucket-corporate HostName bitbucket.org User git IdentityFile ~/.ssh/id_rsa_corp IdentitiesOnly yes
Vous pouvez maintenant utiliser git clone [email protected]:company/project.git
Host bitbucket-personal HostName bitbucket.org User git IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes
Vous pouvez maintenant utiliser git clone [email protected]:username/other-pi-project.git
Host myserver HostName ssh.username.com Port 1111 IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes User username IdentitiesOnly yes
Vous pouvez maintenant SSH sur votre serveur en utilisant ssh myserver
. Vous n'avez plus besoin de saisir un port et un nom d'utilisateur chaque fois que vous vous connectez à votre serveur privé en SSH.
Gestion des mots de passe
La dernière pièce du puzzle est la gestion des mots de passe. La saisie d'un mot de passe peut s'avérer très fastidieuse chaque fois que vous initialisez une connexion SSH. Pour contourner ce problème, nous pouvons utiliser le logiciel de gestion des mots de passe fourni avec macOS et diverses distributions Linux.
Pour ce tutoriel, nous utiliserons le programme Keychain Access de macOS. Commencez par ajouter votre clé à l'accès au trousseau en passant l' -K
option à la ssh-add
commande:
ssh-add -K ~/.ssh/id_rsa_whatever
Vous pouvez maintenant voir votre clé SSH dans Keychain Access:

Mais si vous supprimez les clés de ssh-agent
avec ssh-add -D
ou redémarrez votre ordinateur, vous serez invité à entrer un mot de passe à nouveau lorsque vous essayez d'utiliser SSH. Il s'avère qu'il reste un autre cerceau à franchir. Ouvrez votre config
fichier SSH en exécutant nano ~/.ssh/config
et ajoutez ce qui suit:
Host * AddKeysToAgent yes UseKeychain yes
Avec cela, chaque fois que vous exécutez, ssh
il recherchera des clés dans Keychain Access. S'il en trouve un, vous ne serez plus invité à entrer un mot de passe. Des clés seront également automatiquement ajoutées à ssh-agent
chaque fois que vous redémarrerez votre machine.
Maintenant que vous connaissez les bases de la création de nouvelles clés SSH et de la gestion de plusieurs clés, sortez et ssh
à votre guise!