Comment masquer une clé privée SSH sur Gitlab CI

Image by Marc Pascual from Pixabay

Par défaut, il n’est pas possible de masquer une clé privée SSH car elle contient des sauts de lignes qui sont interdits par un masque.

Interdiction des sauts de lignes dans les variables sous Gitlab CI

Cette interdiction provient des sauts de ligne. Pour contourner le problème, il suffit d’encoder la clé en base 64 avec cette commande :

cat nomDuFichierDeLaClefPrivee | base64 -w 0

La sortie à l’écran vous donnera le résultat, il suffira de le copier-coller dans le contenu de la variable Gitlab CI.

Bien sûr, il faudra appliquer un décodage de la clé à l’utilisation. Iici dans l’exemple, au moment du déploiement :

echo "$SSH_PRIVATE_KEY" | base64 -d  | ssh-add -

On a juste inséré un pipe et base64 -d (pour décode) pour décoder la variable avant de l’ajouter aux clés du serveur.

٩( ᐛ )و
Et voilà !

Kevin
Développeur fullstack depuis 16 ans, j'aime résoudre des problèmes complexes et me lancer dans des projets stimulants. J'ai développé de nombreux produits : progiciels, site e-commerce, web services, API ou encore plateforme Saas. J'aime l'accessibilité, le clean code, l'automatisation et améliorer l'Expérience Utilisateur.