スマートカードを使用すると、GnuPGは署名のための主キーを見つけることができませんが、私は1つしか持っていません。私は何が間違っていましたか?

スマートカードを使用すると、GnuPGは署名のための主キーを見つけることができませんが、私は1つしか持っていません。私は何が間違っていましたか?

私は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

おすすめ記事