Le guide ultime de SSH - Configuration des clés SSH

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/.sshré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-addpour 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/configet 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 configfichier 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 configfichier:

Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes

Ensuite, assurez-vous que ce ~/.ssh/id_rsan'est pas le cas en ssh-agentouvrant un autre terminal et en exécutant la commande suivante:

ssh-add -D

Cette commande supprimera toutes les clés de la ssh-agentsession actuellement active .

Maintenant, si vous essayez de fermer un référentiel GitHub, votre configfichier 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' -Koption à la ssh-addcommande:

ssh-add -K ~/.ssh/id_rsa_whatever

Vous pouvez maintenant voir votre clé SSH dans Keychain Access:

Accès au trousseau

Mais si vous supprimez les clés de ssh-agentavec ssh-add -Dou 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 configfichier SSH en exécutant nano ~/.ssh/configet ajoutez ce qui suit:

Host * AddKeysToAgent yes UseKeychain yes

Avec cela, chaque fois que vous exécutez, sshil 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-agentchaque 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!