访问私钥时 GPG 挂起

Joh*_*gen 25 git gpg pgp openpgp

我喜欢用我的 PGP 密钥签署我的 git 提交,所以当我去的时候我很震惊,git commit -S但没有提示我输入 PGP 密钥密码,git 刚刚开始挂起。几个月来我没有对我的 GPG 设置进行任何更改,并且从那时起进行了多次提交,没有任何问题。此外,当我尝试使用 来查看我的私钥时gpg -K,gpg 会挂起。但是,当我运行gpg -k查看我的公钥时,它会像往常一样返回列表。希望有人会对导致此问题的原因以及如何解决此问题有所了解。

小智 29

我遇到了这个确切的问题(OSX Sierra 10.12.6,gpg/GnuPG 2.2.5)

会挂起的命令:

gpg -K # --list-secret-keys
gpg -d # --decrypt
gpg --edit-key
gpgconf --kill gpg-agent
Run Code Online (Sandbox Code Playgroud)

我的解决方案与上面John提到的相同(即杀死 gpg-agent),因为大多数其他关于how-can-i-restart-gpg-agent 的方法也会挂起。

# Solution    
pkill -9 gpg-agent
Run Code Online (Sandbox Code Playgroud)

然后为了签署 git 提交,我设置了上面casgpg-failed-to-sign-commit-object提到的 tty env 。

export GPG_TTY=$(tty)
Run Code Online (Sandbox Code Playgroud)