密钥环中的Git GPG密码

时间:2016-04-20 08:28:52

标签: linux git gnupg

我正在使用Git与GnuPG签名。每次我想签署提交时,我都必须提供我的GnuPG密钥密码。

是否有可能让git利用一些系统范围的密钥环,比如gnome-keyring?我似乎无法在网上找到任何关于此的文档,甚至是任何关于此的文档。也许有一些我不知道的解决方案,这不是很容易谷歌的流行。

可能有一些GUI工具可以为我做这些,但我对这些不感兴趣,我主要使用来自控制台的git,有时来自基于IntelliJ的IDE,它只调用系统git二进制文件。拥有系统端解决方案将允许我对这些IDE(和cli)使用git config --global commit.gpgsign true

2 个答案:

答案 0 :(得分:1)

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。

     

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

     

您还可以在登录期间重新启动gpg-agent,但事实并非如此   将缓存时间限制为会话长度,但是登录用户。决定   如果这是你的问题,你自己。

     

GnuPG 2.1及以上

     

在GnuPG 2.1及更高版本中,maximum-cache-ttl选项已重命名为   max-cache-ttl没有进一步更改。

答案 1 :(得分:0)

我看到您使用的是Fedora,在29版中,我要做的就是:

git config --global gpg.program gpg2

它使用Gnome钥匙扣(海马)。