在 macOS 上签署 git 提交时一直要求输入密码短语

6

我曾经在两台其他的Mac上设置过Git提交签名,现在我正在尝试在一台新的Mac上设置,但由于我不理解的原因而失败。所有机器都运行High Sierra 10.13.6 (17G65)。

1)通过Homebrew安装了软件包

brew install gnupg gpg-agent pinentry-mac gpg1

~/.gnupg/gpg.conf文件中,我定义了一个密钥服务器。
use-agent

~/.gnupg/gpg-agent.conf
pinentry-program /usr/local/bin/pinentry-mac

2) 添加了我的私钥(使用gpg -K运行时正确显示)

3) 如果我运行例如 echo "test" | gpg --clearsign 的命令,将会看到pinentry提示框,其中有一个复选框可以将密码存储在Keychain中。此时,再次运行相同的命令就不会再要求输入密码。

如果我尝试签署提交,则不会弹出pinentry提示框,而是在终端中弹出提示框(需要提供密码解锁等)。 我可以输入密码进行签名,但每次都需要输入密码。

我已经多次尝试卸载软件包并从头开始,但没有成功。

1个回答

4

经过至少三个小时的奋斗,我意识到 Git 没有使用 gpg(我正在使用 echo 进行测试),而是使用了 gpg1echo "test" | gpg1 --clearsign 就像 git commit -S 一样。

不久前,在 Homebrew 更新 后,我不得不更改我的 .gitconfig

[gpg]
     program = /usr/local/bin/gpg1

由于某些原因,这个配置在旧的 Mac 上可以工作,但在新的 Mac 上却无法工作。移除此行后,使用gpg进行签名可以正常工作,而且不会要求输入密码。

同时,在这一点上卸载了 gpg1。

brew uninstall gpg1

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