私はDebianベースのDockerイメージを使用しており、キーリングには1つのキーしか使用できません。
$ gpg -K
/tmp/test-keyring/pubring.kbx
-------------------------------
sec> rsa2048 2012-01-16 [C] [expires: 2024-05-15]
CB522FE0379DDF40A93400D7E4BC91FACDA9A65B
Card serial no. = 00nn 00nnnnnn
uid [ unknown] John Doe <[email protected]>
ssb# rsa2048 2012-01-16 [S] [expires: 2024-05-14]
ssb rsa3072 2012-01-16 [S] [expires: 2024-05-15]
ここに示すように、3つのキーがあります。
- ラベル付きのマスターキーは
>
スマートカードにあります。鍵検証専用として表示されており、署名用には使用できません。 #
2番目の補助署名キー(表示)のプライベート部分はここにありません。したがって、署名には使用できません。- 3 番目の補助署名キーには、使用可能な非公開部分があります。ここで署名するために使用できる唯一のキーです。
ここでも最後のキーは、署名目的で使用できる唯一のキーです。
ああ、何らかの理由でGnuPGはそれを見ることができません:
$ echo test | gpg --clearsign
gpg: no default secret key: Unusable public key
gpg: [stdin]: clear-sign failed: Unusable public key
ただし、ユーザーIDを直接指定すると、署名に問題はありません。
$ echo test | gpg --clearsign --default-key [email protected]
gpg: using "[email protected]" as default secret key for signing
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
test
-----BEGIN PGP SIGNATURE-----
マニュアルによるとすぐに使えます。
--default-key name 署名のデフォルトのユーザー ID として name を使用します。このオプションを使用しない場合、デフォルトのユーザーIDはキーリングで見つかった最初のユーザーIDです。
私はGnuPG 2.2.19を使用しています:
$ gpg --version
gpg (GnuPG) 2.2.19
libgcrypt 1.8.5
私はすでに申請していますDockerの既知の回避策GPG_TTY
、役に立たない。
動作させるにはどうすればよいですか?
ベストアンサー1
問題を解決するために入れたり入れたりすることができます。default-key [email protected]
default-key CB522FE0379DDF40A93400D7E4BC91FACDA9A65B
~/.gnupg/gpg.conf