Configurer un accès SSH à Gitlab

GitLab propose deux modes de connexion pour gérer vos projets: HTTPS et SSH Nous allons nous intéresser à la seconde méthode qui permet de ne pas avoir à s’identifier à chaque session. Concrètement l’identification est liée à une signature de la machine qui garantit son authenticité.

Pré-requis:

  • disposer d’un compte et d’un projet sur Gitlab.com
  • utiliser une machine Linux (dans l’exemple une distribution Ubuntu 22.04 LTS, donc à base de Debian), sur laquelle le client OpenSSH est installé (disponible nativement ici dans notre exemple)

Génération de la clef

  1. Ouvrez un terminal (Ctrl + Alt + T)
  2. Tapez:
    ssh-keygen -t ed25519 -C "monmail@domaine.fr"
  3. Validez le chemin par défaut (/home/votreNomUtilisateur/.ssh/id_ed25519) en appuyant simplement sur Entrée
  4. Tapez ensuite un mot de passe secret 2 fois
  5. Votre clef est à présent créée et stockée sous deux fichiers : la clef privée id_ed25519 et la clef publique id_ed25519.pub
  6. Il faut ensuite copier le contenu de la clef publique dans le presse-papier.
    Pour cela, nous allons installer xclip. Taper ces deux commandes :
    sudo apt update
    sudo apt install xclip
  7. Et copiez la clef publique
    xclip -sel clip < ~/.ssh/id_ed25519.pub

Ajout de la clef à votre compte Gitlab

  1. Rendez-vous sur GitLab et identifiez-vous
  2. Cliquez sur votre photo en haut à droite puis choisissez Préférences.
  3. Cliquez dans SSH Keys dans le menu de gauche
  4. Renseignez ensuite comme suit :
    Key: Collez avec Ctrl + V le contenu de votre presse-papier
    Title: Nommez votre clef (attention à ne pas mettre du contenu sensible car le nom est public)
    Expiration date: Supprimez la date si vous souhaitez qu’elle soit persistante
  5. Cliquez sur Add Key
Ajout d’une nouvelle clef SSH à votre compte Gitlab

Import de votre premier projet

  1. Depuis Gitlab, rendez-vous sur le projet à cloner
  2. Cliquez sur le bouton Clone, puis le bouton de Copie en face de l’adresse ssh

3. Depuis le terminal, vérifiez si le client est installé
git version

S’il n’est pas installé, vous obtiendrez
La commande « git » n'a pas été trouvée, mais peut être installée avec :
sudo apt install git

Il suffit simplement de tapez donc cette dernière ligne pour l’installer (Ctrl+Maj+V pour copier depuis le terminal) et de confirmer avec « O ».

S’il est installé, la commande git version, donne
git version 2.34.1

4. Rendez-vous dans votre répertoire home.
cd ~
5. Créez un nouveau dossier pour cloner vos projets, et descendez dedans
mkdir projets
cd projets/

6. Clonez votre projet depuis en tapant git clone puis en collant votre adresse SSH copiée depuis Gitlab (git@gitlab.com:nomUtilisateur/nomDuProjet.git). Confirmez avec yes la demande d’authenticité de gitlab.com.. Cela ajoutera le site aux hôtes certifiés dans le fichier ~/.ssh/know_hosts

Import du projet depuis gitlab pour valider la clef SSH

Et voilà ! Une note sur la méthode de cryptage utilisée: ED25519 est relativement récente et implantée depuis OpenSSH 8.2 (février 2020). Elle est recommandée contrairement à la méthode RSA qui est plus lourde et ancienne.

Source: https://docs.gitlab.com/ee/user/ssh.html

Kevin
Développeur web fullstack, j'ai souvent la tête dans le cloud. Après une dizaine d'année d'expérience en entreprise, j'ai choisi la voie de l'indépendance en créant Zion Labs.