Configuration des clés SSH sur GitLab
C'est quoi une clé SSH et pourquoi l'utiliser ?
Lorsque vous travaillez sur un projet, vous devez envoyer votre code vers le serveur GitLab très régulièrement. Le problème est que taper votre nom d'utilisateur et votre mot de passe à chaque fois devient vite fatigant et ralentit votre rythme de travail.
Pour régler cela, on utilise le protocole SSH (Secure Shell). Imaginez que c'est une sorte de badge magnétique pour votre ordinateur. Une fois que le serveur GitLab reconnaît ce badge, il vous laisse passer sans jamais vous redemander vos identifiants. C'est à la fois plus rapide et permet une connexion Git sécurisée.
Information
Avant de commencer ce chapitre, assurez-vous d'avoir bien installé Git sur votre système. Si ce n'est pas fait, reportez-vous au chapitre précédent sur l'installation.
Générer votre paire de clés SSH
Le principe de SSH repose sur une paire de clés. Il y a une clé privée que vous gardez précieusement sur votre machine et une clé publique que vous donnez à GitLab. C'est comme un cadenas et sa clé : vous installez le cadenas sur GitLab et vous seul possédez la clé pour l'ouvrir. Aujourd'hui, la norme de sécurité recommandée est l'algorithme ED25519.
Création de la clé sur votre ordinateur
Ouvrez votre terminal ou votre invite de commande sur Windows et tapez la commande suivante pour générer une clé SSH en remplaçant par votre email :
ssh-keygen -t ed25519 -C "votre_email@example.com"
Le système va vous poser quelques questions. Voici comment réagir :
- Emplacement du fichier : Il vous propose un chemin par défaut dans un dossier nommé .ssh. Appuyez simplement sur Entrée pour valider.
- Passphrase : C'est un mot de passe optionnel pour protéger votre clé. Vous pouvez en mettre un ou appuyer sur Entrée deux fois pour laisser vide.
Résultat attendu :
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\Nom\.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\Nom\.ssh/id_ed25519.
Your public key has been saved in C:\Users\Nom\.ssh/id_ed25519.pub.
Ajouter votre clé publique sur GitLab
Maintenant que vos clés sont créées, il faut configurer GitLab pour qu'il puisse vous reconnaître automatiquement grâce à votre clé publique.
Récupérer le contenu de la clé publique
Allez dans le dossier où vos clés ont été enregistrées. C'est généralement dans votre dossier utilisateur, puis dans le dossier caché .ssh. Cherchez le fichier qui possède l'extension .pub comme par exemple id_ed25519.pub.
Ouvrez ce fichier avec un bloc-notes et copiez l'intégralité du texte qui s'y trouve. Le code commence souvent par des caractères comme ssh-ed25519.
Coller la clé dans les réglages GitLab
Connectez-vous à votre interface GitLab puis suivez ce chemin :
- Cliquez sur votre avatar en haut à droite puis sur Edit Profile (ou Settings).
- Dans le menu de gauche, cliquez sur la section SSH Keys.
Dans le grand champ intitulé Key, collez le contenu que vous avez copié précédemment. GitLab devrait automatiquement lui donner un titre.
"Collez votre clé publique ici et cliquez sur Add Key"
Validation finale
Cliquez sur le bouton Add Key. Vous verrez alors apparaître votre clé avec son Fingerprint, qui est une version courte pour l'identifier.
Vérifier que la connexion SSH fonctionne
Pour être certain que tout est bien configuré, ouvrez votre terminal et tapez cette commande de test :
ssh -T git@gitlab.com
Si c'est la première fois, le terminal vous demandera si vous faites confiance au serveur. Tapez yes. Si vous voyez un message du type Welcome to GitLab, @votre_nom !, c'est que votre clé SSH est active.
Utiliser le clonage via SSH
Maintenant que la communication est établie, vous pouvez officiellement cloner un projet GitLab via SSH. L'intérêt majeur est de supprimer définitivement la saisie répétitive de vos identifiants. Git utilisera désormais automatiquement votre "badge numérique" pour vous identifier de manière transparente auprès du serveur.
Pour tester cela, rendez-vous sur l'interface de votre projet, cliquez sur le bouton bleu Clone et récupérez l'adresse située sous la section Clone with SSH. Votre commande de clonage dans le terminal ressemblera désormais à ceci :
git clone git@gitlab.com:votre-pseudo/nom-du-projet.git
Gain de productivité
Une connexion SSH sécurisée est le standard absolu dans le monde professionnel. Elle permet d'automatiser tous vos échanges sans jamais sacrifier la sécurité de votre code source.
Conclusion
Félicitations ! Votre ordinateur est maintenant officiellement reconnu par votre serveur. Grâce à cette clé SSH GitLab, vous n'aurez plus jamais besoin de taper vos identifiants lors d'un push ou d'un pull. C'est une étape cruciale pour gagner en efficacité au quotidien.
Maintenant que la connexion est sécurisée, nous allons pouvoir passer aux choses sérieuses avec la création de votre premier projet sur GitLab.
Espace commentaire
Écrire un commentaire
Rejoignez la discussion
Vous devez être connecté pour poster un message.
30 commentaires
Parfait. N'oublie pas de vérifier régulièrement tes clés autorisées dans tes réglages GitLab si tu as des doutes sur la sécurité.
J'ai enfin réussi à configurer le SSH, c'est tellement plus fluide merci.
Via l'API GitLab. Utilise
curlpour supprimer la clé par son ID.Comment je peux supprimer une clé de mon compte GitLab via CLI ?
Ajoute un bloc Host dans ton
~/.ssh/configpour spécifier la clé à utiliser :J'ai un souci avec mon
configSSH. J'ai plusieurs clés pour différents serveurs.Cool. Pense à bien sécuriser tes clés, ne partage jamais ta clé privée.
Merci pour le guide, ça marche nickel sur mon poste.
Tu essaies probablement de cloner en HTTPS au lieu de SSH. Vérifie l'URL, elle doit commencer par
git@gitlab.com.Je n'arrive pas à cloner, il me demande toujours le mot de passe de mon utilisateur système, pas celui de GitLab.
C'est normal si tu as réinstallé ton système ou si GitLab a mis à jour ses serveurs. Supprime l'entrée obsolète :
Mon terminal me dit que l'empreinte a changé,
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!. Je fais quoi ?Utilise le mode verbeux de SSH :
Tu verras exactement quel fichier il tente de lire.
Comment je vérifie quel fichier de clé est utilisé pendant le push ?
Non, GitLab rejette les clés dupliquées entre différents utilisateurs. Chaque compte doit avoir sa propre paire de clés.
Est-ce que je peux utiliser la même clé pour plusieurs comptes GitLab ?
Vérifie qu'il n'y a pas de saut de ligne parasite au début ou à la fin de ta sélection. La chaîne doit commencer impérativement par
ssh-ed25519.J'ai collé ma clé, GitLab me dit
Key is invalid. J'ai pourtant fait un copier-coller propre.Parce que
ed25519est plus rapide et plus robuste face aux attaques actuelles. Le RSA, c'est obsolète pour les nouvelles clés.Pourquoi
ed25519et pasrsa?Oui, fais un
mkdir -p ~/.ssh && chmod 700 ~/.sshavant de générer ta clé pour éviter les soucis de permissions.Le fichier
.sshn'existe pas sur mon Linux. Je le crée à la main ?Oui, sauf si tu utilises un gestionnaire de clés comme
ssh-agentou le trousseau de clés de ton OS. C'est le prix à payer pour une sécurité accrue.J'ai mis une passphrase lors de la création. Est-ce que je dois la taper à chaque
git pushmaintenant ?C'est souvent un firewall ou un proxy qui bloque le port 22. Tente de tester ta connexion via le port 443 pour voir :