在Mac上为Git签名缓存GPG密码

5

这个话题已经有一个更通用的线程了,记住在签署git提交时的GPG密码,但那里的答案对我不起作用。我的环境是:

  • Mac (macOS@10.15.7)
  • Bash (与macOS一起默认提供的)
  • Git v2.27.0
  • GnuPG v2.2.20 (libgcrypt 1.8.5)

我通过Homebrew安装了GnuPG,并将以下设置写入~/.gnupg/gpg-agent.conf文件:

default-cache-ttl 1209600 # 14 days
max-cache-ttl 31536000 # 1 year

但缓存没有被应用。每隔十分钟左右,当我执行git commit后,gpg会提示我再次输入密码。

这是我的全局.gitignore文件:

[commit]
    gpgSign = true

我错过了什么?


只有在gpg-agent运行时,才会保存密码短语。如果您不想在代理停止后再次输入密码短语,请不要使用密码短语。 - dan1st
谢谢@dan1st - 你知道如何让gpg-agent随Bash会话一起启动吗? - Paul Razvan Berg
将其添加到.bashrc中。 - dan1st
1个回答

4

在我的个人设置中,我已将签名密钥添加到用户部分。

[user]
name = "Marco Franssen"
email = "marco@my-email.com"
signingkey = 63B0C3B53E26....

[commit]
gpgSign = true

此外我在oh-my-zsh中安装了以下插件。(~/.zshrc

plugins=(git keychain gpg-agent)

zstyle :omz:plugins:keychain agents ssh,gpg
zstyle :omz:plugins:keychain identities id_rsa 63B0C3B53E2....

这个插件可以为我的ssh和gpg密钥启动代理。

另外,我添加了以下文件

$ cat ~/.gnupg/gpg-agent.conf
default-cache-ttl 3600

对于Bash,您可以在~/.bashrc中添加以下内容。

https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/gpg-agent/gpg-agent.plugin.zsh


谢谢你的回答,Marco!我已经更新了问题描述以指明我正在使用哪个 shell。您知道 Bash 中plugins =(git keychain gpg-agent)的等效方式是什么吗? - Paul Razvan Berg
@PaulRazvanBerg 我已经更新了插件添加的脚本链接。你应该能够将其添加到你的~/.bashrc中。 - Marco

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