Les invitations répétées pour le nom d’utilisateur et le mot de passe sont ennuyeuses et gaspillent du temps. Si vous utilisez l’authentification par mot de passe avec votre compte GitLab, chaque action nécessite l’envoi de vos informations d’identification, que ce soit en tant que partie de la commande ou via une invite interactive.
Surtout lors de l’automatisation des pipelines CI/CD dans GitLab, l’authentification par mot de passe peut être inefficace et présenter un risque potentiel pour la sécurité. Pourquoi ne pas mettre fin à vos souffrances et passer à l’authentification par clé Secure Shell (SSH) avec les clés SSH de GitLab ? Lisez la suite et apprenez comment faire!
À la fin de ce tutoriel, vous aurez généré une paire de clés SSH, utilisé la clé pour vous authentifier et publier un nouveau projet GitLab.
Prérequis
Ce tutoriel est une démonstration pratique. Pour suivre, assurez-vous de préparer les exigences suivantes.
- Votre compte GitLab. Si vous n’en avez pas encore, inscrivez-vous gratuitement d’abord.
- A computer to use as your Gitlab SSH client. This tutorial will be using an Ubuntu 20.04 LTS computer but should work with Windows and macOS too.
- Mettez à jour ou installez Git. La dernière version en date de cet écrit est la 2.25.1.
Visual Studio Code (VS Code). L’exemple dans ce tutoriel utilisera VS Code 1.62.3.
Génération d’une paire de clés SSH GitLab
Les clés SSH ou une paire de clés se composent de clés privées et publiques. En gros, la clé privée est ce que le client (votre ordinateur) présente au serveur (GitLab) pour l’authentification, et la clé publique est ce que le serveur utilise pour décoder votre clé privée. Et si les deux clés correspondent, l’authentification réussit.
GitLab prend en charge deux types de paires de clés SSH, les clés SSH RSA et ED25519. Mais dans cet exemple, vous générerez la paire de clés ED25519 car elle est considérée comme plus sécurisée que les clés RSA. Suivez les étapes ci-dessous pour générer une paire de clés SSH.
1. Sur votre bureau, ouvrez une session terminal et exécutez la commande ci-dessous. Cette commande ouvre votre répertoire personnel dans VS Code.
2. Sur VS Code, cliquez sur Terminal —> Nouveau terminal.

3. Sur le terminal de VS Code, exécutez la commande ssh-keygen -t
ci-dessous pour générer le type de clé SSH ED25519
. La balise de commentaire -C
est facultative mais recommandée pour rendre vos clés plus identifiables.
4. À la prochaine invite demandant où enregistrer la clé, appuyez sur Entrée pour accepter le nom de fichier par défaut. Le nom de fichier devrait être similaire à /home/<nom_utilisateur>/.ssh/id_ed25519, où <nom_utilisateur> est votre nom d’utilisateur.

5. Ensuite, laissez le mot de passe vide et appuyez deux fois sur Entrée. En conséquence, vous allez créer une paire de clés SSH sans mot de passe.

Vous devriez voir un résultat similaire à la capture d’écran ci-dessous montrant les emplacements de la clé privée (id_ed25519) et de la clé publique (id_ed25519.pub).
Les clés privée et publique ont le même nom de fichier de base. Mais la clé publique a une extension .pub, tandis que la clé privée n’a pas d’extension.

Ajout de la clé SSH Gitlab à votre profil
Rappelez-vous que la clé privée reste sur votre ordinateur, tandis que la clé publique doit être sur le serveur Gitlab. Donc, après avoir généré les clés SSH, votre prochaine étape est de télécharger la clé publique sur votre compte Gitlab. Pour ce faire, procédez comme suit.
1. Ouvrez votre fichier de clé publique dans VSCode. Dans le volet Explorateur, développez le dossier .ssh et cliquez sur id_es25519.pub. Ensuite, sélectionnez la clé publique et copiez-la dans le presse-papiers.

2. Maintenant, ouvrez un navigateur Web, accédez à https://gitlab.com, et connectez-vous à votre compte Gitlab.
3. Après vous être connecté, accédez aux paramètres de profil Clés SSH sur https://gitlab.com/-/profile/keys.
- Collez la clé publique que vous avez copiée précédemment dans le champ Clé.
- Le champ Titre se remplit automatiquement avec la partie commentaire de votre clé publique. Laissez la valeur du titre telle quelle ou saisissez la valeur de votre choix.
- Facultativement, spécifiez une date d’expiration dans le champ Expire le.
- Enfin, cliquez sur Ajouter une clé.

Utilisation de votre clé SSH Gitlab
Jusqu’à présent, vous avez généré la clé SSH et l’avez téléversée dans votre compte Gitlab. Il vous reste à tester si votre clé SSH fonctionne en l’utilisant pour vous connecter et vous authentifier auprès de Gitlab.
Connexion
Dans le terminal de VS Code, connectez-vous à votre compte Gitlab en exécutant la commande ci-dessous.
En supposant que vous vous connectiez pour la première fois, la commande vous invite à vérifier l’authenticité de l’hôte et à confirmer la connexion. Tapez yes
à l’invite et appuyez sur Enter
pour confirmer.
Remarquez que vous n’avez pas eu à saisir de nom d’utilisateur et de mot de passe pour vous connecter ? Au lieu de cela, la commande ssh utilise automatiquement vos clés SSH pour l’authentification. Après une connexion réussie, vous devriez voir un message de bienvenue disant, « Bienvenue sur Gitlab @username!« .

Publication d’un nouveau projet
Vous avez confirmé que votre clé SSH Gitlab fonctionne et vous permet de vous authentifier avec succès. Mais fonctionne-t-elle également lorsque vous interagissez avec Gitlab via Git ? Pourquoi ne pas tester en publiant un nouveau référentiel Gitlab ?
1. Tout d’abord, initialisez la configuration Git et configurez-la avec le nom d’utilisateur et l’adresse e-mail de votre compte Gitlab. Sur le terminal de VS Code, exécutez les commandes git config
ci-dessous pour spécifier respectivement votre nom d’utilisateur Gitlab et votre adresse e-mail.
La commande que vous avez exécutée devrait mettre à jour ou créer le fichier ~/.gitconfig avec les informations que vous avez fournies.

2. Ensuite, créez un dossier sous votre répertoire personnel pour votre nouveau dépôt. Nommez le nouveau dossier mon-premier-projet.
Le nom du dossier deviendra également le nom de votre projet de dépôt Gitlab.
3. Initialisez le dépôt en exécutant la commande ci-dessous. Assurez-vous de remplacer le <nom_utilisateur>
par votre nom d’utilisateur Gitlab.
Vous devriez voir un message de confirmation similaire à la capture d’écran ci-dessous.

4. Ensuite, spécifiez l’adresse du dépôt Git distant pour votre projet. Cette adresse de dépôt détermine si vous vous authentifiez avec des clés SSH ou avec un nom d’utilisateur et un mot de passe.
Voici la syntaxe, où <nom_utilisateur>
est votre nom d’utilisateur Gitlab et <nom_projet>
est le nom du dépôt Gitlab. Remarquez que l’adresse du dépôt commence par [email protected]
, ce qui indique que vous vous authentifierez avec la clé SSH au lieu d’un nom d’utilisateur et d’un mot de passe.
Supposons que le nom d’utilisateur Gitlab soit kevin
, et le nom du référentiel soit my-first-project
. Maintenant, exécutez la commande dans le terminal comme suit.
5. Exécutez la commande ci-dessous pour créer un fichier vide dans votre référentiel appelé README.md.
6. Ouvrez le fichier README.md pour l’édition et collez le contenu suivant dans le fichier. Enregistrez le fichier après l’édition. Mon premier projet pour démontrer les clés SSH Gitlab.

7. Maintenant, indiquez à Git d’ajouter le nouveau fichier README.md au référentiel et de valider les modifications.
Vous devriez voir une sortie similaire à celle indiquée ci-dessous.

8. Enfin, il est temps de publier votre nouveau référentiel. Exécutez la commande ci-dessous pour pousser le référentiel de votre ordinateur vers votre compte Gitlab.
Comme vous pouvez le voir ci-dessous, la création du projet a réussi et il n’y a eu aucune invite d’identification ! Git a utilisé vos clés SSH pour s’authentifier auprès de Gitlab.

9. Enfin, confirmez que votre nouveau projet Gitlab existe en ligne. À l’aide de votre navigateur, accédez à https://gitlab.com/dashboard/projects pour afficher une liste de vos projets existants. Vous devriez alors voir le nom my-first-project dans la liste.

10. De plus, cliquez sur le nom du projet, et vous devriez voir le fichier README.md et son contenu affichés.

Conclusion
Félicitations d’avoir atteint ce point dans ce tutoriel ! Tout au long de ce tutoriel étape par étape, vous avez appris comment générer et utiliser des clés SSH pour effectuer des déploiements sécurisés de contrôle de version vers votre dépôt GitLab.
Avec cette connaissance, vous pouvez désormais effectuer des tâches sur vos dépôts GitLab sans craindre d’exposer accidentellement votre nom d’utilisateur et votre mot de passe.
Avez-vous déjà utilisé l’authentification par clé SSH sur GitLab auparavant ? Comment avez-vous trouvé l’expérience ? Recommanderiez-vous également l’utilisation de clés SSH à d’autres, ou existe-t-il une raison pour laquelle ils devraient s’en abstenir ? Faites-nous savoir.