Configuring SSH for Gitlab
The aim of this guide is to help you set up a computer to use GitLab with SSH authentication. It is aimed at beginners: for a more general introduction, see the main page on SSH and the BR’s advanced tips.
The installation steps for Windows 10 and 11 are described below. For Linux and macOS, please also refer to the main SSH guide.
The setup is relatively simple. Follow carefully the following steps.
Prérequis
Before you start, make sure you have git installed on your computer. To check this:
- open a cmd or PowerShell terminal (press the Windows key + R, then type
cmdorpowershell); - type
git -vand check that Git is installed; if it isn’t, install Git here; - then type
ssh -Vto check that SSH is installed; if it isn’t, install OpenSSH here.
Mise en place
Étape 1 : Générer une clé SSH
Ouvre un terminal (cmd ou powershell) et tape la commande suivante :
ssh-keygen -t ed25519 -C "ordi portable vaneau"
En remplaçant ordi portable vaneau par un nom de ton choix. Tu peux laisser les autres champs vides en appuyant simplement sur la touche Entrée pour chaque option.
À noter qu'il y a une option pour changer le nom de la clé (par défaut id_ed25519) et l’emplacement de sauvegarde. Il y a aussi une autre option pour ajouter un mot de passe (passphrase) à la clé, qu'il est recommandé de mettre si ton disque dur n'est pas chiffré.
Étape 2 : Ajouter la clé SSH sur Gitlab
- Connecte-toi sur Gitlab avec tes identifiants Sigma BR ;
- Clique sur ton avatar en haut à gauche, puis sur
Preferences, puis surSSH Keys(ou va directement sur cette page) ; - Clique sur
Add new key; - Copie le contenu du fichier
C:\Users\<ton_nom>\.ssh\id_ed25519.pub(ou un autre chemin si tu as choisi un autre emplacement) en remplaçant<ton_nom>par ton nom d’utilisateur Windows et colle-le dans le champKey; - (optionnel) Supprime la date d’expiration de la clé si tu veux qu’elle reste valide indéfiniment ;
- Clique sur
Add key.
Étape 3 : Préparer SSH pour utiliser la clé
- Ouvre le dossier
C:\Users\<ton_nom>\.sshsur VSCode (ou ton éditeur de texte préféré) ; - Crée un fichier
config(sans extension) ; - Ajoute le contenu suivant :
Host gitlab.binets.fr User git IdentityFile C:\Users\<ton_nom>\.ssh\id_ed25519
En remplaçant <ton_nom> par ton nom d’utilisateur Windows.
Étape 4 : Activer l'agent SSH
Taper ssh-add -L
- Si ta clef ssh est affichée, tout va bien, tu peux passer à l'étape suivante
- Sinon, suit ces étapes :
Sur windows
- Aller dans la recherche windows et lancer
Services - Chercher OpenSSH Authentification Agent
- Double cliquer dessus et mettre :
Type de démarrage : Automatique - Appuyer sur démarrer
- Dans un terminal, faire
ssh-add
Sur Linux/Mac
Voilà une solution un peu nulle qu'il faudra refaire à chaque fois que tu redémarre ton ordi. Lance un terminal et tape :
eval `ssh-agent` ssh-add
N'hésite pas à trouver une meilleure solution et à l'écrire ici.
Étape 5 : Tester la connexion SSH
Pour tester la connexion SSH, ouvre un terminal et tape la commande suivante :
ssh -T gitlab.binets.fr
Tu devrais voir un message comme ça :
The authenticity of host 'gitlab.binets.fr (129.104.201.46)' can't be established. ED25519 key fingerprint is SHA256:sn+wsip9OTBcwiY0ZplULWXNij3v3kdj/tP228i2+70. Are you sure you want to continue connecting (yes/no/[fingerprint])?
Écrit yes puis appuie sur Entrée.
Si tout s’est bien passé, tu devrais voir un message de bienvenue de Gitlab. Dans le cas contraire, vérifie que tu as bien suivi toutes les étapes précédentes. Si tu rencontres des difficultés, n’hésite pas à demander de l’aide au Binet Réseau en permanence ou sur PaniX.
Étape 6 : Configurer l’identité Git
Pour finir, il faut configurer correctement ton identité sur Git. Dans ton terminal, tape les commandes suivantes :
git config --global user.name "<Ton Nom>"
git config --global user.email "<ton.nom>@polytechnique.edu"
En remplaçant <Ton Nom> par ton nom et <ton.nom>@polytechnique.edu par les valeurs adéquates.
Félicitations ! À partir de là, tu peux utiliser Gitlab avec une authentification SSH.
Lorsque tu clones un dépôt, veille bien à choisir le lien SSH et non HTTPS.

