rde*_*ges 31 password git gnupg
我是一名开发人员,我通常使用我的 GPG 密钥签署我的 Git 提交。我已经能够让 GPG 代理在 OSX 上正常工作,因此它每天只要求我输入一次密码,但是我在 Ubuntu 16.04 上遇到了同样的问题。
这是我在做什么:
然后我去提交它们 ( git commit),并得到一个 GPG 密码请求,如下所示:
$ git ci
You need a passphrase to unlock the secret key for
user: "Randall Degges <r@rdegges.com>"
4096-bit RSA key, ID 8F700DA2, created 2016-04-05
[master 1740961] blah
1 file changed, 1 insertion(+)
Run Code Online (Sandbox Code Playgroud)问题是:每次我提交时,都会再次提示我输入 GPG 密码。
我想要做的是配置 GPG 代理以将我的密码缓存一整天,因此只需输入一次。
我已经阅读了大量的文档和博客文章,这是我迄今为止尝试过的......
首先,我修改了我的~/.zshrc文件(我使用 zsh)来设置以下内容:
# GPG Agent
export GPG_TTY=$(tty)
export GPGKEY=8F700DA2
Run Code Online (Sandbox Code Playgroud)
现在,从我读到的内容来看,在重新启动 gpg-agent 后,仅此一项就可以解决问题,但事实并非如此。
所以,我做的下一件事是按照页面中的~/.gnupg/gpg-agent.conf说明定义了一个文件man gpg-agent:
# Set the default cache time to 1 day.
default-cache-ttl 86400
default-cache-ttl-ssh 86400
# Set the max cache time to 30 days.
max-cache-ttl 2592000
max-cache-ttl-ssh 2592000
Run Code Online (Sandbox Code Playgroud)
这也没有效果。
我也尝试了各种博客方法等,但似乎没有任何效果。有人可以给我一些我可能缺少的东西的指示吗?
Jen*_*rat 31
除了在 中设置缓存时间之外gpg-agent.conf,您还必须确保 GnuPG 实际上与gpg-agent. GnuPG 2 及更高版本通常会,但 GnuPG 1 分支不会。默认情况下,git 使用gpg二进制文件,它(在撰写此答案时)仍然是 GnuPG 1,而 GnuPG 2 与gpg2大多数系统一样安装。
最后,你有两种可能:
git config --global gpg.program gpg2
Run Code Online (Sandbox Code Playgroud)gpg(GnuPG 1) 以使用gpg-agent添加use-agent到gpg.conf