Comment configurer les clés Git SSH

Lorsque vous travaillez avec Git en utilisant la ligne de commande, le moyen le plus courant de gérer l'authentification consiste à utiliser des clés SSH. Découvrez comment les configurer.

Lorsque vous travaillez avec Git en utilisant la ligne de commande, le moyen le plus courant de gérer l'authentification consiste à utiliser des clés SSH.

La plupart des clients basés sur l'interface graphique comme GitHub Desktop gèrent cela pour vous, mais parfois vous avez besoin de la ligne de commande, et il est donc très utile d'avoir une configuration de clé SSH en place.

De plus, vous aurez parfois besoin d'une clé SSH pour faire des choses utiles comme extraire un référentiel sur un serveur distant.

Clés sur votre ordinateur

Les clés SSH sont stockées dans le~/.sshdossier.

Vous pouvez y avoir plus d'une clé, car les clés SSH sont utilisées pour des choses autres que Git.

Vous pouvez lister toutes vos clés SSH en tapant

ls -al ~/.ssh

Si vous avez des clés existantes, vous remarquerez qu'elles sont placées par paires, un fichier et un autre portant le même nom se terminant par.pub:

Existing SSH keys

Le.pubLe fichier contient la clé publique, tandis que l'autre fichier contient la clé privée qui ne doit jamais être partagée nulle part.

Vous ne devez jamais partager la clé privée nulle part. Si vous perdez la clé privée, vous devrez régénérer une nouvelle paire de clés privée / publique, car l'authentification ne peut pas être effectuée avec succès sans la partie clé privée.

Générer une nouvelle clé

Vous générez une nouvelle clé SSH à l'aide de la commandessh-keygen, qui est disponible sur tous les ordinateurs macOS, Linux et Windows modernes avec le sous-système Linux ou leGit pour Windowspaquet.

Voici la commande que vous utilisez:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

La dernière partie, qui dans cet exemple est remplie avec une adresse e-mail, est un commentaire. Vous pouvez saisir n'importe quel e-mail de votre choix, il ne doit pas s'agir de votre compte GitHub ou il peut même s'agir d'une chaîne aléatoire. Il peut être utile de savoir qui a généré la clé en cas d'ambiguïté potentielle.

Le programme de génération de clé vous demandera où vous souhaitez enregistrer la clé. S'il s'agit de la première clé, il vous est suggéré d'utiliserid_rsacomme nom de fichier, mais vous feriez mieux de choisir un nom de fichier qui se souvient du service pour lequel vous le générez, commegithub_rsa.

Vous pouvez éventuellement ajouter un mot de passe. Je recommande fortement de définir le mot de passe. macOS stockera le mot de passe dans le trousseau pour que vous n'ayez pas à le répéter à chaque fois.

Ajouter la clé à GitHub

Je montre le processus pour GitHub, mais c'est le même type de processus que chaque plate-forme Git utilise, avec de petites différences.

Dans les paramètres GitHub, vous trouverez le menu «Clés SSH et GPG»:

Cliquez dessus pour révéler votre configuration actuelle:

Comme vous pouvez le voir ici, j'ai défini 3 clés SSH, une que j'utilise localement sur mon mac et 2 que j'utilise sur les serveurs distants pour extraire le code du site Web.

En appuyant sur «Nouvelle clé SSH», vous pouvez en ajouter une nouvelle:

Vous avez défini le titre comme quelque chose de significatif, dont vous vous souviendrez dans 2 ans et plus.

La clé est celle que vous avez générée auparavant.

Vous pouvez ouvrir le.pubfichier de la clé, copiez son contenu et collez-le dans cette case.

Vous pouvez le faire en utilisant n'importe quelle commande CLI commecat id_rsa.pubet vous copiez / collez tout le code clé avec la souris.

Une fois que vous avez enregistré cette chaîne sur GitHub (ou tout autre service, car le concept est le même pour tout le monde), votre client Git aura les informations d'identification dont il a besoin pour communiquer avec le serveur de suppression, et vous devriez être prêt à partir!

Utilisation de plusieurs touches

Il est recommandé d'utiliser une clé SSH différente pour chaque service que vous prévoyez d'utiliser.

Cela rend très facile l'invalidation d'une clé sur un service spécifique sans avoir à la changer sur tous les services que vous utilisez si vous décidez de la renouveler, soit parce qu'elle est compromise / exposée publiquement, soit pour une autre raison.