Cloner un dépôt ou une branche avec une clé SSH dans Git

Ankit Raj Goyal 30 janvier 2023
  1. Qu’est-ce que SSH
  2. Pourquoi Git Clone avec une clé SSH
  3. Utiliser une clé SSH pour cloner un référentiel dans Git
  4. Étendre Git Clone SSH avec des options
Cloner un dépôt ou une branche avec une clé SSH dans Git

SSH Git Clone fournit un moyen sécurisé de cloner des référentiels distants. Ce didacticiel montre la méthode complète pour cloner Git avec une clé SSH - comment générer une clé SSH, configurer SSH dans Git et cloner Git à l’aide d’une clé SSH.

Nous montrons également quelques options utiles pour étendre la fonctionnalité - cloner une seule branche, cloner dans un répertoire choisi ou ne cloner que quelques commits pour les grands référentiels.

Qu’est-ce que SSH

SSH ou Secure Shell Protocol est un protocole réseau permettant d’utiliser des services sécurisés sur un réseau non sécurisé. Il utilise une paire de clés publique-privée - vous seul accédez à votre clé privée pendant que vous envoyez votre clé publique au service que vous souhaitez utiliser.

Toutes les données chiffrées avec votre clé publique ne peuvent être ouvertes qu’avec votre clé privée et vice-versa.

Pourquoi Git Clone avec une clé SSH

SSH Git Clone offre un moyen simple de cloner en toute sécurité des référentiels distants sur des réseaux publics non sécurisés.

Si vous clonez Git avec une clé SSH, vous n’avez pas à retaper les mots de passe à chaque fois pour vous identifier auprès du serveur distant. Une fois qu’un serveur authentifie un agent SSH, il se souvient des détails - vous ne ressaisissez pas une clé SSH à chaque fois.

Générer une paire de clés SSH

Nous générons une paire de clés publique-privée SSH avec la commande ssh key-gen.

ssh key-gen

générer des clés ssh

Il vous demandera d’entrer une phrase secrète pour sécuriser l’accès à vos clés sur votre ordinateur client - vous pouvez choisir de la laisser vide ou d’entrer votre phrase secrète préférée.

Conseil de pro : aucun caractère ne s’affichera lorsque vous saisirez la phrase de passe. Cela permet de masquer la longueur de votre phrase secrète et d’ajouter plus de sécurité.

Conseil de pro 2 : écrivez votre phrase de passe quelque part. Si vous l’oubliez, vous ne pourrez pas récupérer votre accès.

Nous restons avec les valeurs par défaut pour la commande ssh key-gen ici, mais nous pouvons également passer différentes options - l’algorithme de chiffrement que nous voulons (par exemple, ed2559), une étiquette, un emplacement spécifique pour enregistrer les clés.

Vérifiez la paire de clés SSH enregistrée

Nous vérifions si nos clés SSH sont générées et enregistrées correctement.

ls -al ~/.ssh

vérifier les clés ssh

Les clés sont stockées dans le dossier .ssh de votre machine. Le fichier id_rsa contient la clé privée, tandis que le fichier id_rsa.pub contient votre clé publique.

Si vous voyez ces deux fichiers dans la sortie, vous avez créé et enregistré avec succès une paire de clés SSH.

Ajouter la clé SSH à l’agent SSH

Nous lançons l’agent SSH en arrière-plan.

eval "$(ssh-agent -s)"

lancer l’agent ssh

Nous voyons l’agent s’exécuter en tant que processus d’arrière-plan 970. Nous ajoutons la clé privée SSH à l’agent SSH.

ssh-add ~/.ssh/id_rsa

ajouter sshagent de clé privée

L’agent confirme qu’il a ajouté la clé privée avec le message Identité ajoutée : <path_to_private_key.

Ajouter une clé publique au compte GitHub distant

Copiez la clé publique dans le presse-papiers.

clip < ~/.ssh/id_rsa.pub

Conseil de pro : copiez toujours la clé PUBLIC. Ne partagez JAMAIS votre clé PRIVÉE avec QUICONQUE.

  1. Allez sur votre compte GitHub.
  2. Cliquez sur “Profile Picture”.
  3. Choisissez Settings dans le menu déroulant.

paramètres github

  1. Cliquez sur SH and GPG Keys dans la colonne de gauche.

sélectionner les clés ssh et gpg

  1. Cliquez sur New SSH Key en haut à droite.

nouveau clic sur la touche ssh

  1. Ajoutez une description et collez la clé PUBLIC dans le champ Clé.

public sshkey coller à github

Vous avez maintenant identifié avec succès votre agent SSH avec votre compte GitHub.

Testez votre connexion SSH à GitHub

Nous testons la connexion SSH à GitHub.

ssh -T git@github.com

tester la connexion ssh

Le message confirme que vous vous êtes authentifié avec succès.

Utiliser une clé SSH pour cloner un référentiel dans Git

Ensuite, nous clonons notre référentiel distant avec SSH.

  1. Copiez l’URL SSH de votre référentiel

Dans votre dépôt dans GitHub, cliquez sur le bouton vert Code en haut à droite.

Cliquez sur SSH pour afficher votre URL SSH. Copiez cette URL SSH.

copier l&rsquo;url ssh

  1. Git Clone SSH dans le terminal Git

Clonez la télécommande à l’aide de SSH dans le terminal Git.

git clone <remote_repo_ssh_url>

Le <remote_repo_ssh_url> est l’URL que vous avez copiée ci-dessus.

git cloner ssh

Vous avez réussi à cloner un référentiel dans Git à l’aide de clés SSH.

Étendre Git Clone SSH avec des options

Vous voudrez peut-être un type de clone spécifique pour votre cas d’utilisation. Vous pouvez étendre le clone Git via SSH avec quelques options.

  1. Git Clone SSH uniquement une branche spécifique

Pour cloner une seule branche à l’aide de clés SSH :

git clone --branch <branch_to_clone> <remote_repo_ssh_url>

branche spécifique de git clone

Ceci est très utile dans le cas de dépôts volumineux. Pour gagner du temps et de l’espace sur votre machine locale, vous pouvez cloner uniquement la branche sur laquelle vous travaillez ou seulement quelques branches qui vous intéressent.

  1. Git Clone à l’aide de la clé SSH dans un emplacement spécifique

Vous voudrez peut-être cloner dans un dossier particulier pour garder votre structure de répertoires locaux bien organisée.

Pour cloner dans un emplacement spécifique :

git clone <remote_repo_ssh_url> <specific_location_local>

emplacement spécifique du clone git

  1. Clonage superficiel de Git avec une clé SSH - Cloner seulement quelques commits

Vous voudrez peut-être réduire le temps de clonage ou économiser de l’espace disque local en cas de référentiels volumineux. Vous pouvez le faire en clonant uniquement un ensemble sélectionné des derniers commits.

Pour cloner seulement quelques commits récents :

git clone --depth=<n> <remote_repo_ssh_url>

Ici <n> est le nombre de commits récents que vous souhaitez cloner.

Par exemple, si n = 2, il ne clonera que les deux derniers commits.

git shallow clone ssh

Article connexe - Git Clone