Cloner un dépôt ou une branche avec une clé SSH dans Git
- Qu’est-ce que SSH
- Pourquoi Git Clone avec une clé SSH
- Utiliser une clé SSH pour cloner un référentiel dans Git
- Étendre Git Clone SSH avec des options
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
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
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)"
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
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.
- Allez sur votre compte
GitHub
. - Cliquez sur “Profile Picture”.
- Choisissez
Settings
dans le menu déroulant.
- Cliquez sur
SH and GPG Keys
dans la colonne de gauche.
- Cliquez sur
New SSH Key
en haut à droite.
- Ajoutez une description et collez la clé
PUBLIC
dans le champClé
.
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
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.
- 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.
- 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.
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.
- 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>
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.
- 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>
- 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.