X
!
[
}
}

NOUS LES DEVS

Trouver sa clé SSH dans GitLab

Rechercher une clé SSH dans GitLab afin de l’ajouter comme clé de déploiement

Niveau : débutant(e)
</> </> </>

Clé SSH

Nous sommes une agence constituée de cinq développeurs et nous gérons une certaine quantité de projets, au point de bientôt dépasser les 100 clés de déploiement sur l’un de nos serveurs GitLab.

Dans certains cas, nous sommes amenés à utiliser une même clé SSH pour plusieurs dépôts différents. C’est typiquement le cas lorsqu’un développeur doit travailler sur un projet spécifique. La première chose qu’il fait est d’ajouter sa clé publique dans les clés de déploiement autorisées pour le dépôt.

En soi, rien de problématique, sauf dans un cas de figure bien précis qui n’est pas géré par GitLab.

Une même clé

Les clés de déploiement sont ajoutées au niveau des différents projets, dans la section Settings > Repository > Deploy Keys. Voici un screenshot qui te permettra d’identifier précisément la section à laquelle je fais référence.

gitlab_deploy_keys

Le problème

La problématique, c’est que lorsque la clé est ajoutée manuellement pour un dépôt qui se trouve dans un groupe, le système émet une erreur « Fingerprint SHA256 has already been taken ». Cela vient du fait que la clé est déjà disponible et qu’il suffit de l’activer dans la section « Privately accessible deploy keys ». Or, celle-ci n’est pas affichée, ce qui empêche de l’activer facilement.

gitab_fingerprint_sha256

L’autre solution serait de connaître le nom qui a été utilisé. Mais quand bien même un nom correspondrait, il est impossible de savoir s’il s’agit bien de la bonne clé.

Fingerprint

Mais après quelques petites recherches, j’ai découvert qu’il était possible de retracer une clé dans GitLab grâce à son empreinte. Avec ssh-keygen, la commande permettant de gérer les clés SSH, on peut obtenir l’empreinte d’une clé. Le drapeau -l sert à afficher l’empreinte, et le drapeau -f de spécifier une clé précise.

ssh-keygen -lf ~/.ssh/gitlab4test.pub

La commande suivante permet donc d’afficher la séquence qui va me permettre de chercher ma clé dans GitLab.

4096 SHA256:O8daaAeH5qvCM9jm/gIDa6+P22woC2jYnYefmwV9uzY yann@MBP (RSA)

Rechercher une clé

Pour mener à bien la recherche, on se rend dans la section « Privately accessible deploy keys » et on utilise la recherche.

La chose à savoir pour que cela fonctionne, c’est qu’il faut utiliser très précisément la valeur du hash et prendre la partie située après « SHA256: » jusqu’au premier espace. Dans mon exemple, voici le hash à utiliser.

O8daaAeH5qvCM9jm/gIDa6+P22woC2jYnYefmwV9uzY

Ensuite, pour activer la clé, il suffit de cliquer sur « Enable ». Le panneau se refermera et tu pourras retrouver ta clé dans l’onglet « Enabled deploy keys ». À partir de ce moment, tu pourras lire sur le dépôt, mais il faudra bien penser à cliquer sur le petit crayon et sélectionner « Grant write permissions to this key » pour pouvoir écrire sur le dépôt (pousser du code quoi).

gitlab_search_key_in_privately_accessible_deploy_keys

Voilà

Si un jour tu te retrouves dans la même situation que moi, tu pourras te souvenir qu’il existe une méthode très simple pour retrouver ta clé SSH dans GitLab.

Et si jamais c’est le cas et que tu utilises cette commande, tu devras consulter mon blog en guise de remerciement, tu n’as plus le choix !

28/12/2025

Yann Vangampelaere - nouslesdevs -

NOUS LES DEVS

Vous aimez ce que je fais ? Vous voulez que j'en fasse plus ? dans le développement du blog.