web-dev-qa-db-fra.com

Importation de la clé GPG dans ubuntu: conteneur Docker bionique

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?

2
Forivin

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

3
Forivin