我喜欢用我的PGP密钥在git commit上签名,所以当我去时我很震惊,git commit -S
但是git并没有挂起我的PGP密钥密码。我已经几个月没有更改我的GPG设置了,从那以后就进行了很多提交,没有问题。此外,当我尝试使用查看我的私钥时gpg -K
,gpg会挂起。但是,当我运行gpg -k
以查看我的公共密钥时,它会像平常一样返回该列表。希望有人会对导致此问题的原因及其解决方法有所了解。
不,我不是通过SSH执行此操作。奇怪的是,我发现如果我杀死gpg-agent,gpg就会再次起作用。我正在尝试找出原因并提出长期解决方案。
—
John Leuenhagen
我只是在
—
cas
gpg-agent
手册页中注意到,将GPG_TTY设置为上述设置并不是我要努力完成的工作,这是必需的。手册页说您应该像我一样一直在.bashrc中设置它,并且还说It is important that this environment variable always reflects the output of the tty command.
-这一定是我从那里得到的。您需要注意的另一件事是gpg-agent使用的pinentry程序。我将我的设置~/.gnupg/gpg-agent.conf
为/usr/bin/pinentry-curses
gpg-agent
在远程系统的.bashrc(等)中具有或类似的设置,并且配置为在遥控器的X显示屏或类似位置上提示?过去我也遇到过类似的问题(例如,从mythtv盒上的终端ssh-ing到台式机上运行需要gpg的东西。也有类似的问题ssh-agent
),我用蛮力将其“修复”export GPG_TTY=$(tty)
在.bashrc,以确保提示符始终在当前tty上。反正我不能忍受GUI passwd提示。