GPGの秘密鍵のパスフレーズを変更しようとしています。
私は実際にタツノオトシゴを使用して変更しました(gpg --edit-keys
とpasswd
も試しましたが、秘密鍵をエクスポートしようとすると、2つのパスフレーズ(新旧両方)が要求され、古いパスフレーズが使用されますサブシークレットキー用。
今、私は2つの複雑なパスワードを覚えておく必要があります!
GPGの秘密鍵のパスフレーズを変更する正しい方法は何ですか?
GPG 2.1以降の場合、秘密鍵は~/.gnupg/private-keys-v1.d
に保存されます。サブキーを含む各鍵は、キーのキーグリップをファイル名として使用して、個別のファイルとして保存されます。
<keygrip>.key
gpg --edit-key
を使用してパスフレーズを変更すると、すべてのサブキーが秘密キーディレクトリで変更されます。
ただし、seahorse
はメインキーの秘密キーファイルのみを変更しているようです。
したがって、これはseahorse
のバグのようです。これは、公開鍵と同じように秘密鍵をキーリング構造に格納していた以前のgpg
バージョンからの回帰である可能性があります。この動作はバージョン2.1以降で変更されました。
タツノオトシゴがメインキーの秘密キーファイルのみを変更することを示す、テストキーを使用した単純なテスト結果。
3つのサブキーを持つテストキー
pub ed25519 2018-12-24 [SC]
988D29CB7CA9D62252B22DEFB42E56952F9FB61C
Keygrip = 8226D19110BAC4FB4D60BC25869E5F23C1BB667F
uid [ultimate] delete me (Delete Me) <[email protected]>
sub cv25519 2018-12-24 [E]
Keygrip = 04B4D2C5CC29926F48DA2C4FD24F03B9595AE51C
sub ed25519 2019-03-25 [SA]
Keygrip = 269995721854253C5F8B48CB40DD24948D580F8C
sub ed25519 2019-03-25 [SA]
Keygrip = 604E0E8F9D9C2B19A823E22A90F08EC2DDCA80BB
パスフレーズがseahorse
で変更されました
-rw------- 1 user user 333 Mar 25 09:27 8226D19110BAC4FB4D60BC25869E5F23C1BB667F.key
-rw------- 1 user user 333 Mar 25 09:08 604E0E8F9D9C2B19A823E22A90F08EC2DDCA80BB.key
-rw------- 1 user user 333 Mar 25 09:08 269995721854253C5F8B48CB40DD24948D580F8C.key
-rw------- 1 user user 341 Mar 25 09:08 04B4D2C5CC29926F48DA2C4FD24F03B9595AE51C.key
パスフレーズがgpg --edit-key
で変更されました
-rw------- 1 user user 333 Mar 25 09:37 604E0E8F9D9C2B19A823E22A90F08EC2DDCA80BB.key
-rw------- 1 user user 333 Mar 25 09:37 269995721854253C5F8B48CB40DD24948D580F8C.key
-rw------- 1 user user 341 Mar 25 09:37 04B4D2C5CC29926F48DA2C4FD24F03B9595AE51C.key
-rw------- 1 user user 333 Mar 25 09:37 8226D19110BAC4FB4D60BC25869E5F23C1BB667F.key
タツノオトシゴのソースコードチェック
タツノオトシゴのソースコードのいくつかを確認した後、動作は古いシークレットキーリングgpgメソッドと一致しているようです。
gpgme
のドキュメントによると、パスフレーズは gpgme gpgme_op_passwd
関数呼び出し を使用して変更する必要があります。ただし、この関数呼び出しはタツノオトシゴのソースコードには表示されません。
タツノオトシゴ(別名GNOMEパスワードとキー)のメンテナーはこちら。
評判が十分でないため、ここでRubberStampの回答にコメントすることはできませんが、Seahorse 使用を開始gpgme_op_passwd
(またはその非同期バリアントgpgme_op_passwd_start
)Seahorse3.32で。
コードはそれよりも早く(検証済みの回答の約1か月前に)すでにマスターに含まれていましたが、リリースは3月12日からでした。ディストリビューションに含まれているバージョンに応じて、このはすでに修正されているはずです。そうでない場合は、お気軽に 問題を提出してください :-)。