记住 GPG 密码以在提交 git 时签名

76

是否可以保存GPG密码,这样每次进行git提交时就不需要输入密码了?


看看 gpg-agent 可能有用吗? - Etan Reisner
仅为完整起见,这也在SU上提出了https://superuser.com/questions/624343/keep-gnupg-credentials-cached-for-entire-user-session - James Geddes
2个回答

88

您可以在~/.gnupg/gpg-agent.conf文件中添加以下行来设置gpg-agent的超时时间:

default-cache-ttl 3600

这将告诉gpg-agent将密码短语存储一小时。你不希望它是无限期的,但不必不停地输入它也是有益的。


6
更多信息 » https://www.gnupg.org/documentation/manuals/gnupg-devel/Agent-Options.html - gdibble
2
制作一个包含该行的文本文件,但如果您仍在使用GPG 1.4,则不会使用gpg-agent。大多数人现在使用2.0或2.1,除非出于某些原因需要1.4的系统(通常是像路由器这样的无头系统)。 - Ben
4
如果你不想的话其实是不必这样做的,但如果你想的话也可以这样做,而且不会有任何坏处。最好的方法是运行gpgconf --kill gpg-agent,代理将在下一个gpg进程或命令启动时重新启动(对于该用户),无论是否需要输入密码或pinentry。注意不要改变原来的意思。 - Ben
4
gpg@2.2.20 中,这要么已经不起作用了,要么不接受像“1209600”(2周)这样的大值。 - Paul Razvan Berg
4
@PaulRazvanBerg 表示,在 gpg@2.2.29 上,一周(604800)的时间似乎能够正常工作,如果对任何人有帮助的话。 - Brad Turek
显示剩余4条评论

18
如果您使用的是 Mac,我建议您使用 pinentry-mac。然后,您可以将密码保存到 macOS 钥匙串中。
通过 brew install pinentry-mac 进行安装,然后将此行 pinentry-program /opt/homebrew/bin/pinentry-mac 添加到 ~/.gnupg/gpg-agent.conf(删除/注释掉该文件中的任何其他 pinentry-program 行)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接