Start

解决 macOS 下使用 GPG 给 Git 提交签名的问题

macOS GPG

好长的标题。

问题

最近整了个尾号是6666 6666的 GPG 密钥,正好给每次的 Git 提交加个校验,问题也由此而来。

用 Git 提交的时候报如下的错误:

error: gpg failed to sign the data
fatal: failed to write commit object

总之就很奇怪,而且在 Git 的配置文件里也设置好了,就像这样:

[user]
	name = SenYue
	email = sencat31@outlook.com
	signingkey = 9715779B2A8150AB
[commit]
	gpgsign = true

但在森最终不放弃的寻找下 (并没有),最后找到了解决方法。

如果作为勇士的你,愿意参加此次冒险的话,就继续读下去吧!(什么乱七八糟的)

解决

在你的终端配置文件(.zshrc)里添加如下:

export GPG_TTY=$(tty)

用 Homebrew 安装pinentry-mac,命令如下:

brew install pinentry-mac

修改gpg-agent.conf配置文件:

echo "pinentry-program $(which pinentry-mac)" >> ~/.gnupg/gpg-agent.conf

修改gpg.conf

echo 'use-agent' >> ~/.gnupg/gpg.conf

杀掉所有的gpg-agent

killall gpg-agent

然后就应该好了。