J'essaie d'importer une clé GPG sur un système Gitlab CI avec une image ubuntu: bionic Docker. Pour le faire en toute sécurité, je dois stocker la clé dans une variable dite secrète (qui devient alors simplement une variable d'environnement à l'exécution).
J'ai donc essayé d'exporter la clé dans un format non binaire comme ceci:
gpg2 --armor --export-secret-keys "my name <my email>" > my-gpg-key.asc
my-gpg-key.asc a ressemblé à ceci alors:
-----BEGIN PGP PRIVATE KEY BLOCK-----
long multi line ascii string
-----END PGP PRIVATE KEY BLOCK-----
Ensuite, j'ai copié le contenu du fichier et défini une variable secrète à partir de celui-ci. La variable s'appelle LAUNCHPAD_GPG_PRIVATE_KEY
Voici ce que j'ai essayé:
apt-get -qq update --yes
apt-get -qq install --yes gnupg2 > /dev/null
export GPG_TTY=$(tty) # compensate for ioctl error
gpg2 --list-keys
gpg2 -v --import <(echo "$LAUNCHPAD_GPG_PRIVATE_KEY")
gpg2 --list-keys
Ce qui provoque:
gpg: key 17B1EA9E090F697D/17B1EA9E090F697D: error sending to agent: No such file or directory
gpg: error building skey array: No such file or directory
J'ai aussi essayé d'exporter et d'importer la clé avec gpg au lieu de gpg2: même résultat ...
J'ai aussi essayé de courir
gpg-agent --daemon
et
gpg-agent --daemon --allow-loopback-pinentry
avant l'importation ... mais quand même: Même erreur.
Des idées comment cela peut être fait correctement?
J'ai réussi à l'importer sans erreur en ajoutant l'indicateur de lot.
gpg2 -v --batch --import <(echo "$LAUNCHPAD_GPG_PRIVATE_KEY")
Ne me demandez pas pourquoi cela résout le problème. Il m'a fallu des heures pour comprendre cela ...