过去我已经在另外两台Mac上设置了Git commit签名,我试图将其设置在一台新的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提示,但是会在终端上看到提示(您需要提供密码来解锁,等等。)。我可以输入密码并进行签名,但是我每次都需要输入密码。
我尝试卸载软件包并从头开始多次,但是没有运气。
答案 0 :(得分:2)
经过至少三个小时的战斗之后,我意识到Git不是使用gpg
(我正在使用echo
测试),而是gpg1
。 echo "test" | gpg1 --clearsign
的行为类似于git commit -S
。
Homebrew update之后.gitconfig
坏了,我不得不更改了我的[gpg]
program = /usr/local/bin/gpg1
gpg
由于某种原因,此配置可在旧版Mac上运行,但不适用于新版Mac。删除了此行,使用brew uninstall gpg1
可以按预期进行签名,并且不需要密码。
此时还卸载了gpg1
{{1}}