kna*_*arf 5 encryption gpg pgp
我有一个从旧版 gpg 开始的 gpg 设置,当时我没有使用密码。当提示输入时,我会直接输入 enter 。我不确定这是否意味着密钥未加密,或者是否使用空密码加密。
无论如何,当我尝试解密最近发送给我的东西时,gpg 需要访问我的私钥并提示我输入密码,但现在我不能再使用空密码了。gpg 失败:
$ gpg -d foo.asc
(X dialog that prompts me for passphrase, I just press enter)
gpg: public key decryption failed: No passphrase given
gpg: decryption failed: No secret key
Run Code Online (Sandbox Code Playgroud)
我希望能够再次使用我的钥匙。从现在开始我不介意设置密码,但我不知道如何:
$ gpg --passwd xxxxxxx@xxxxxxx.com
(X dialog that prompts me for current passphrase, I just press enter)
gpg: key xxxxxxxxxxxxxxxx/aaaaaaaaaaaaaaaa: error changing passphrase: No passphrase given
gpg: key xxxxxxxxxxxxxxxx/bbbbbbbbbbbbbbbb: error changing passphrase: No passphrase given
gpg: error changing the passphrase for 'xxxxxxx@xxxxxxx.com': No passphrase given
Run Code Online (Sandbox Code Playgroud)
我在 openSUSE 15.0 上运行 gpg (GnuPG) 2.2.5 和 libgcrypt 1.8.2。
我通过使用具有密钥的旧系统解决了这个问题。
这是我运行的命令:
# put a non-empty passphrase on current key
me@old$ gpg --passwd xxxx@xxxx.com
(leave empty on first prompt)
(put a new non-empty passphrase on 2nd)
(confirm new passphrase)
# now we export it
me@old$ gpg --list-secret-keys
/home/xxxxx/.gnupg/secring.gpg
-------------------------------
sec 4096R/AAAAAAAA 2015-01-01
uid Foo Bar <xxxx@xxxxx.com>
uid Bar Foo <xxxx@yyyyy.com>
ssb 4096R/BBBBBBBB 2015-01-01
# I've used the first key id (should be 8 hex digits)
me@old$ gpg --export-secret-keys AAAAAAAA > priv.key
# copy key over new system
# backup .gnupg dir just in case
me@new$ mv .gnupg .gnupg.back
# import new priv key
me@new$ gpg --import priv.key
(type new passphrase set previously)
# done!
Run Code Online (Sandbox Code Playgroud)
为了完整起见,这里是两个系统的软件版本,也许可以帮助某人: