Close

Qu'est-ce qu'une clé SSH dans Git ?

Une clé SSH est un identifiant d'accès pour le protocole réseau SSH (Secure Shell). Ce protocole réseau sécurisé authentifié et chiffré est utilisé pour la communication à distance entre des machines sur un réseau ouvert non sécurisé. Le protocole SSH est utilisé pour le transfert de fichiers à distance, la gestion du réseau et l'accès à distance au système d'exploitation. L'acronyme SSH est également utilisé pour décrire un ensemble d'outils permettant d'interagir avec le protocole SSH.

SSH utilise une paire de clés pour établir une liaison sécurisée entre des parties distantes. La paire de clés contient une clé publique et une clé privée. La nomenclature privée et publique peut prêter à confusion, car on parle de clés dans les deux cas. Il est plus utile de considérer la clé publique comme un « verrou » et la clé privée comme une vraie « clé ». Vous donnez le « verrou » public aux parties distantes pour chiffrer ou « verrouiller » les données. Ces données sont ensuite ouvertes avec la clé « privée » que vous détenez en lieu sûr.


Comment créer une clé SSH


Les clés SSH sont générées via un algorithme cryptographique à clé publique, le plus courant étant RSA ou DSA. Pour faire simple, les clés SSH sont générées par une formule mathématique qui prend 2 nombres premiers et une variable de départ aléatoire pour générer la clé publique et la clé privée. Il s'agit d'une formule unidirectionnelle qui garantit que la clé publique peut être dérivée de la clé privée, mais que la clé privée ne peut pas être dérivée de la clé publique.

Les clés SSH sont créées à l'aide d'un outil de génération de clés, comme celui inclus dans la suite d'outils de ligne de commande SSH. La plupart des hébergeurs Git proposent des guides sur la création d'une clé SSH.

Générer une clé SSH sur Mac et Linux

Les systèmes d'exploitation OSX et Linux comprennent des applications de terminal modernes complètes qui sont fournies avec la suite SSH installée. Le processus de création d'une clé SSH est le même sur les deux.

1. Exécutez le code ci-dessous pour lancer la création de la clé.

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Logo Git
Ressource connexe

Fiche de révision sur Git

Logo Bitbucket
DÉCOUVRIR LA SOLUTION

Découvrir Git avec Bitbucket Cloud

Cette commande créera une clé SSH en utilisant l'e-mail comme étiquette.

2. Vous serez alors invité à saisir un fichier dans lequel enregistrer la clé.
Vous pouvez spécifier un emplacement de fichier ou appuyer sur « Entrée » pour accepter l'emplacement de fichier par défaut.

> Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

3. L'invite suivante vous demandera une phrase secrète sécurisée. Une phrase secrète ajoutera une couche de sécurité supplémentaire au SSH et sera requise chaque fois que la clé SSH est utilisée. Si quelqu'un accède à l'ordinateur sur lequel sont stockées les clés privées, il peut également accéder aux systèmes utilisant cette clé. L'ajout d'une phrase secrète aux clés empêchera ce scénario.

> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

À ce stade, une clé SSH aura été générée au niveau du chemin de fichier précédemment spécifié.

4. Ajoutez la nouvelle clé SSH au ssh-agent.

Le ssh-agent est un autre programme qui fait partie de la suite d'outils SSH. Il est chargé de conserver les clés privées. C'est comme un trousseau de clés. En plus de détenir des clés privées, il gère également les demandes de signature des demandes SSH avec les clés privées afin que les clés privées ne soient jamais transmises de manière non sécurisée.

Avant d'ajouter la nouvelle clé SSH au ssh-agent, assurez-vous d'abord qu'il est en cours d'exécution à l'aide de la commande suivante :

$ eval "$(ssh-agent -s)"
> Agent pid 59566

Une fois que le ssh-agent est en cours d'exécution, la commande suivante ajoute la nouvelle clé SSH à l'agent SSH local.

ssh-add -K /Users/you/.ssh/id_rsa

La nouvelle clé SSH est maintenant enregistrée et prête à être utilisée !

Générer une clé SSH sous Windows


Les environnements Windows ne disposent pas d'un shell Unix standard par défaut. Des programmes shell externes devront être installés pour bénéficier d'une expérience complète sur la génération de clés. L'option la plus directe consiste à utiliser Git Bash. Une fois Git Bash installé, les étapes à suivre dans le shell Git Bash sont les mêmes pour Linux et pour Mac.

Sous-système Linux pour Windows


Les environnements Windows modernes proposent un sous-système Linux pour Windows qui fournit un shell Linux complet dans un environnement Windows traditionnel. Si un sous-système Linux est disponible, les mêmes étapes que celles décrites précédemment pour Linux et Mac peuvent être réalisées dans le sous-système Linux de Windows.

Résumé


Les clés SSH sont utilisées pour authentifier les connexions sécurisées. En suivant ce guide, vous serez en mesure de créer et de commencer à utiliser une clé SSH. Git est capable d'utiliser des clés SSH à la place de l'authentification par mot de passe traditionnelle lors d'un push ou d'un pull avec des dépôts distants. Les solutions Git hébergées modernes comme Bitbucket prennent en charge l'authentification par clé SSH.


Partager cet article

Lectures recommandées

Ajoutez ces ressources à vos favoris pour en savoir plus sur les types d'équipes DevOps, ou pour les mises à jour continues de DevOps chez Atlassian.

Des personnes qui collaborent à l'aide d'un mur rempli d'outils

Le blog Bitbucket

Illustration DevOps

Parcours de formation DevOps

Démos Des démos avec des partenaires d'Atlassian

Fonctionnement de Bitbucket Cloud avec Atlassian Open DevOps

Inscrivez-vous à notre newsletter DevOps

Thank you for signing up