在macOS上签名git commit一直要求输入密码

时间:2018-07-24 11:22:02

标签: git signing gpg-agent

过去我已经在另外两台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提示,但是会在终端上看到提示(您需要提供密码来解锁,等等。)。我可以输入密码并进行签名,但是我每次都需要输入密码。

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

1 个答案:

答案 0 :(得分:2)

经过至少三个小时的战斗之后,我意识到Git不是使用gpg(我正在使用echo测试),而是gpg1echo "test" | gpg1 --clearsign的行为类似于git commit -S

Homebrew update之后.gitconfig坏了,我不得不更改了我的[gpg] program = /usr/local/bin/gpg1

gpg

由于某种原因,此配置可在旧版Mac上运行,但不适用于新版Mac。删除了此行,使用brew uninstall gpg1 可以按预期进行签名,并且不需要密码。

此时还卸载了gpg1

{{1}}