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.
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.
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).
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 -