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) 如果我运行gpg,例如使用echo "test" | gpg --clearsign,我会看到 pinentry 提示,并带有一个复选框以将密码短语存储在钥匙串中。此时,再次运行相同的命令不会再次要求输入密码。

如果我尝试签署提交,我不会得到 pinentry 提示,而是终端中的提示(您需要提供密码来解锁等)。我可以输入我的密码和签名工作,但我每次都需要输入密码。

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

4

1 回答 1

3

经过至少三个小时的斗争,我意识到 Git 没有使用gpg(我正在使用它进行测试echo),而是gpg1. echo "test" | gpg1 --clearsign表现得像git commit -S

.gitconfig不久前在Homebrew 更新后它坏了,不得不改变我的

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

出于某种原因,此配置适用于旧 Mac,但不适用于新 Mac。删除了这一行,使用 签名按预期工作gpg,并且不请求密码。

此时也卸载了 gpg1

brew uninstall gpg1
于 2018-07-24T12:10:57.167 回答