Utiliser SSH pour communiquer avec un dépôt GitHub
Publié le 21 septembre 2023
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 :
- Accédez à la section "SSH and GPG keys".
- Cliquez sur "New SSH Key" pour ajouter une nouvelle clé SSH.
- Remplissez le formulaire en renseignant un titre et votre clé publique puis validez.

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 :
- Cliquez sur le bouton '< > Code'
- 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.

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
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.