logo

echo 42

arrow-picto

Utiliser SSH pour communiquer avec un dépôt GitHub

Publié le 21 septembre 2023

  • GitHub

Dans cet article nous allons voir comment utiliser le protocole SSH pour interagir avec un dépôt GitHub. L'objectif principal de cette approche est de renforcer la sécurité des communications et de simplifier le processus d'authentification. Il ne sera plus nécessaire de fournir un nom d'utilisateur et un token d'accès à chaque interaction.

Prérequis

  • Avoir un compte GitHub
  • Connaître les bases de l'utilisation de Git
  • Savoir générer des clés SSH dans votre environnement de travail

Procédure

I. Associer la clé publique à votre compte GitHub

1) Utilisez la commande ssh-keygen pour générer la paire de clés SSH :

ssh-keygen -t ecdsa -b 521 -f ~/.ssh/desktop-github

Cette commande générera une paire de clés SSH avec l'algorithme ECDSA et une longueur de 521 bits, enregistrée sous le nom de "desktop-github".

Pendant ce processus, vous pouvez choisir de configurer une passphrase pour renforcer la sécurité de votre clé. Cependant, elle n'est pas obligatoire, et il vous revient de décider si vous souhaitez en ajouter une ou non.

2) Copier la clé publique : Affichez le contenu du fichier contenant la clé publique avec la commande cat puis copiez l'intégralité de la clé pour la suite de la configuration.

cat ~/.ssh/desktop_github.pub

3) Configuration sur GitHub : Dans les paramètres de votre compte GitHub, suivez ces étapes pour ajouter votre clé publique copiée précédemment :

  1. Accédez à la section "SSH and GPG keys".
  2. Cliquez sur "New SSH Key" pour ajouter une nouvelle clé SSH.
  3. Remplissez le formulaire en renseignant un titre et votre clé publique puis validez.
Ajouter une nouvelle clé SSH
alert-picto

Par mesure de précaution, sachez qu'une clé SSH non utilisée depuis un an sera supprimée automatiquement par GitHub.

4) Ajouter la clé à ssh-agent : Démarrez l'agent SSH, puis ajoutez la clé. Si vous avez renseigné une passphrase lors de la création des clés, elle vous sera demandée.

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/desktop-github 

II. Paramétrer votre dépôt Git local

Si vous avez déjà un dépôt Git local qui utilise un pointeur HTTPS et que vous souhaitez maintenant utiliser le protocole SSH pour interagir avec le référentiel distant, procédez comme suit :

1) Dans l'espace de votre projet, copiez l'adresse SSH du référentiel en effectuant les actions suivantes :

  1. Cliquez sur le bouton '< > Code'
  2. Sélectionnez l'option SSH.

L'adresse SSH du référentiel sera alors affichée et prête à être utilisée pour configurer votre dépôt Git local.

Ajouter une nouvelle clé SSH

2) Lister les remotes de votre dépôt local : Utilisez la commande suivante pour afficher la liste des remotes de votre dépôt local ainsi que leurs URL associées :

git remote -v

Résultat :

origin  https://github.com/camHQ/echo42.git (fetch)
origin  https://github.com/camHQ/echo42.git (push)

Ici nous avons un pointeur utilisant l'adresse HTTPS, nous allons donc le remplacer par SSH.

3) Modifiez les URL avec la commande git remote set-url suivie de l'adresse SSH du dépôt distant :

git remote set-url origin git@github.com:camHQ/echo42.git
tips-picto

Lors du clonage d'un dépôt GitHub, le protocole que vous utilisez détermine automatiquement le protocole configuré pour le remote. Si vous optez pour le clonage avec HTTPS, le remote sera automatiquement configuré avec l'adresse HTTPS, et en choisissant le clonage avec SSH, le remote sera configuré avec l'adresse SSH.

Liens externes