web-dev-qa-db-ja.com

ubuntu:bionic DockerコンテナにGPGキーをインポートする

Ubuntu:bionic Dockerイメージを使用してGitlab CIシステムにGPGキーをインポートしようとしています。これを安全に行うには、キーをいわゆる秘密変数に格納する必要があります(この変数は実行時に単純に環境変数になります)。

だから私はこのような非バイナリ形式でキーをエクスポートしようとしました:

gpg2 --armor --export-secret-keys "my name <my email>" > my-gpg-key.asc

my-gpg-key.ascは次のようになります。

-----BEGIN PGP PRIVATE KEY BLOCK-----

long multi line ascii string
-----END PGP PRIVATE KEY BLOCK-----

次に、ファイルの内容をコピーし、そこからシークレット変数を定義しました。変数はLAUNCHPAD_GPG_PRIVATE_KEYと呼ばれます

ここに私が試したものがあります:

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

これは〜をひき起こす:

gpg: key 17B1EA9E090F697D/17B1EA9E090F697D: error sending to agent: No such file or directory
gpg: error building skey array: No such file or directory

また、キーをgpg2ではなくgpgでエクスポートおよびインポートしようとしました:同じ結果...

私も走ってみた

gpg-agent --daemon

そして

gpg-agent --daemon --allow-loopback-pinentry

インポートの前に...しかしそれでも:同じエラー。

これを適切に行う方法はありますか?

2
Forivin

バッチフラグを追加して、エラーなしでインポートを管理しました。

gpg2 -v --batch --import <(echo "$LAUNCHPAD_GPG_PRIVATE_KEY")

なぜこれが修正されるのか聞かないでください。これを理解するのに何時間もかかりました...

3
Forivin