我正在使用Git与GnuPG签名。每次我想签署提交时,我都必须提供我的GnuPG密钥密码。
是否有可能让git利用一些系统范围的密钥环,比如gnome-keyring
?我似乎无法在网上找到任何关于此的文档,甚至是任何关于此的文档。也许有一些我不知道的解决方案,这不是很容易谷歌的流行。
可能有一些GUI工具可以为我做这些,但我对这些不感兴趣,我主要使用来自控制台的git,有时来自基于IntelliJ的IDE,它只调用系统git
二进制文件。拥有系统端解决方案将允许我对这些IDE(和cli)使用git config --global commit.gpgsign true
。
答案 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钥匙扣(海马)。