スマートカードを使用すると、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

答え2

正しく読んだ場合は、署名用の2つのサブキーがありますが、そのうちの1つはオフラインです。

ssb#  rsa2048 2012-01-16 [S] [expires: 2024-05-14]
ssb   rsa3072 2012-01-16 [S] [expires: 2024-05-15]

私は見たいですssb>:両方で子供が次に置き換えられたことを確認してください。切り株。これはおそらくgnupgが混乱している理由です。

同じソースから:

#このキーの秘密キーがまったく利用できないことを示します。これはオフラインマスターキーの場合です。

私の設定は、署名、暗号化、認証のための3つのサブキーがあるのと同じです。 3つのサブキーはすべてスマートカードにあります。

sec#  rsa4096 2011-01-15 [C]
      xxxxxxxxxxxxxxxxxxxx
uid           [ unknown] xxxxxxxxxxxxx
ssb>  rsa4096 2011-01-15 [S]
ssb>  rsa4096 2011-01-15 [E]
ssb>  rsa4096 2011-01-15 [A]

仕事に署名しようとしているときにスマートカードがリーダーにいるかどうかを知りたいです。

答え3

スマートカードを取り外して署名操作を繰り返すと、問題は消えます。これはGnuPGのバグです、次のバージョンでは修正されるようです。

Dockerized環境はこれとは関係ありません。

関連情報