Gpg

如何正確更改 GPG 密鑰的密碼?

  • February 5, 2020

我正在嘗試更改 GPG 密鑰的密碼。

我實際上使用 seahorse 更改了它(也嘗試過gpg --edit-keysand passwd,但是當我嘗試導出我的私鑰時,它現在要求我輸入兩個密碼(新的和舊的)並使用舊的作為子密鑰。

現在我要記住兩個複雜的密碼!

更改 GPG 密鑰密碼的正確方法是什麼?

對於 GPG 2.1 及更高版本,私鑰儲存在~/.gnupg/private-keys-v1.d 每個密鑰中,包括子密鑰,使用密鑰的 keygrip 作為文件名儲存為單獨的文件:

<keygrip>.key

用於gpg --edit-key更改密碼時,所有子密鑰都在私鑰目錄中進行修改。

但是,似乎seahorse只是修改了主密鑰的私鑰文件。

所以,看起來這是seahorse. 這可能是早期版本的回歸,早期gpg版本將私鑰儲存在密鑰環結構中,就像公鑰一樣。此行為在 2.1 及更高版本中已更改。

使用測試密鑰的簡單測試結果,表明 seahorse 只修改了主密鑰的私鑰文件。

帶有三個子鍵的測試鍵

pub   ed25519 2018-12-24 [SC]
     988D29CB7CA9D62252B22DEFB42E56952F9FB61C
     Keygrip = 8226D19110BAC4FB4D60BC25869E5F23C1BB667F
uid           [ultimate] delete me (Delete Me) <delete@me.tld>
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

海馬原始碼檢查

在查看了一些 seahorse 原始碼之後,該行為似乎與舊的密鑰環 gpg 方法一致。

根據gpgme文件,應使用gpgmegpgme_op_passwd函式呼叫更改密碼。但是,這個函式呼叫並沒有出現在海馬原始碼中。

引用自:https://unix.stackexchange.com/questions/508302