Gpg
如何正確更改 GPG 密鑰的密碼?
我正在嘗試更改 GPG 密鑰的密碼。
我實際上使用 seahorse 更改了它(也嘗試過
gpg --edit-keys
andpasswd
,但是當我嘗試導出我的私鑰時,它現在要求我輸入兩個密碼(新的和舊的)並使用舊的作為子密鑰。現在我要記住兩個複雜的密碼!
更改 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
函式呼叫更改密碼。但是,這個函式呼叫並沒有出現在海馬原始碼中。