GPG キーを持っているので、秘密キーを持っていることを確認してその内容を印刷できます。
$ gpg --list-secret-keys
/home/user/.gnupg/pubring.kbx
------------------------------
sec# rsa2048 2019-07-11 [SC]
9EEBCEAD0915834DFCE24B11A738D3C1E6BFA616
uid [ultimate] My Name <my.email@email>
ssb rsa2048 2019-07-11 [E]
これを印刷するには
$ gpg --export-secret-keys -a
-----BEGIN PGP PRIVATE KEY BLOCK-----
....
-----END PGP PRIVATE KEY BLOCK-----
ただし、失効証明書を作成しようとすると、次のメッセージが表示されます。
$ gpg --gen-revoke 9EEBCEAD0915834DFCE24B11A738D3C1E6BFA616
gpg: secret keys "9EEBCEAD0915834DFCE24B11A738D3C1E6BFA616" not found: No secret key
なぜこのようなことが起こるのでしょうか? システムは、失効証明書を生成するための秘密鍵にアクセスできるはずです。
答え1
秘密鍵を持っていることが確認できる
いいえ、そうではありません。これは#
、主キーの秘密部分が欠落していることを意味します。GnuPGは、いくつかの秘密部分を持っているため、エントリ全体を表示します。サブキー。
各 PGP キーは、実際には複数の独立した RSA/DSA/EdDSA キーのバンドルです。キーに署名するための 1 つのキー ペア [C]、メッセージに署名するための別のキー ペア [S]、およびメッセージを復号化するための別のキー ペア [E] が常に存在します。
これらの鍵ペアは目的が異なり、セキュリティレベルも異なるため、一部の人はPGP鍵の一部を信頼度の低いマシンに意図的にエクスポートすることを選択します。つまり、誰かがラップトップを盗んだ場合、古いメールを読むことはできますが、しないだろうPGP を使用してあなたになりすますことができます。
ここで、お使いのマシンには [SC] キーの秘密部分も欠落しているため、受信した電子メールやファイルを復号化することはできますが、署名はまったくできません。また、自分のキーを編集または取り消すには、そのキー自体で署名する必要があるため、[C] 秘密キーがなければそれも不可能になります。