在密钥环中Git GPG密码

我使用GnuPG签名的git。 每次我想签署一个提交,我必须提供我的GnuPG密钥。

是否有可能让git利用一些系统级的keyring,比如gnome-keyring ? 我似乎无法find任何文件,甚至在networking上的任何线程。 也许有一些解决scheme我不知道,这是不够stream行,很容易谷歌。

可能有一些graphics用户界面工具可以做到这一点,但我对这些并不感兴趣,我主要是从控制台使用git,有时是从基于IntelliJ的IDE中调用系统git二进制文件。 有一个系统端的解决scheme将允许我使用这些IDE(和CLI)的git config --global commit.gpgsign true

https://superuser.com/questions/624343/keep-gnupg-credentials-cached-for-entire-user-session复制

达到GnuPG 2

用户配置(在~/.gnupg/gpg-agent.conf )只能定义默认的和最大的缓存时间; 它不能被禁用。

default-cache-ttl选项设置最后一次GnuPG活动之后的超时时间(以秒为单位)(如果使用它,则复位), maximum-cache-ttl选项设置输入密码后缓存的时间范围(以秒为单位)。 两者的默认值是7200(2小时)。

设置它一年左右 – 比如34560000秒(400天) – 你应该没问题:

 default-cache-ttl 34560000 maximum-cache-ttl 34560000 

但是为了使这个改变生效,你需要通过重新启动gpg-agent来结束会话。

如果你想限制你的会话长度,你需要在注销时杀死守护进程。 这在操作系统之间是非常不同的,所以我指的是另一个包含不同系统提示的问题/答案。

您也可以在登录时重新启动gpg-agent ,但这不会限制会话长度的缓存时间,而是会限制用户的登录时间。 决定自己,如果这是你的情况的问题。

GnuPG 2.1及以上版本

在GnuPG 2.1及以上版本中, maximum-cache-ttl选项被重命名为max-cache-ttl而不做进一步的修改。