我过去在另外两台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提示,其中有一个复选框用于将密码短语存储在Keychain中。此时,再次运行相同的命令将不会再次要求输入密码。
如果我尝试对提交进行签名,我不会得到pinentry提示,而是在终端中得到提示(您需要提供密码短语才能解锁等(。我可以输入密码并进行签名,但每次都需要输入密码短语。
我试过多次卸载软件包并从头开始,但没有成功。
经过至少三个小时的斗争,我意识到Git使用的不是gpg
(我正在用echo
测试(,而是gpg1
。CCD_ 9的行为与CCD_。
不久前,当我的.gitconfig
在Homebrew更新后坏了时,我不得不更换它
[gpg]
program = /usr/local/bin/gpg1
出于某种原因,此配置适用于较旧的Mac电脑,但不适用于新的Mac电脑。删除了这一行,使用gpg
按预期进行签名,并且没有请求密码。
此时还卸载了gpg1
brew uninstall gpg1