修复 WSL2 中 git commit 报错的问题
1 min read
描述
在 WSL2 中,使用 git 提交经过 GPG 签名的 commit 时,会出现以下错误:
error: gpg failed to sign the data
fatal: failed to write commit object
原因
这是因为 WSL2 的网络模式会造成回环(loopback),使得用于读取密码的工具 pinentry 出错,进而导致 GPG 无法对 commit 进行签名。
解决方法
通过以下命令配置 pinentry 允许回环来修复:
echo -e '\nuse-agent\npinentry-mode loopback' >> ~/.gnupg/gpg.conf
echo -e '\nallow-loopback-pinentry' >> ~/.gnupg/gpg-agent.conf
参考链接
How to understand the gpg failed to sign the data
problem in git