[英]GPG failed to sign the data for a git commit. But it works after signing a local file first?
这是一个非常奇怪的行为。 我正在使用gpg (GnuPG) 2.2.19
,并且正在尝试签署 git 提交。 我第一次尝试时收到错误消息:
error: gpg failed to sign the data
fatal: failed to write commit object
...但后来有人在另一个 Stack Overflow 问题中建议,如果您先签署本地虚拟文件,然后再次尝试签署可行的提交。 它会吗? 但为什么? 每次我想签署 git 提交时,如何避免首先签署本地文件的奇怪事情?
我在 Windows 11 上使用 WSL,所以所有这些都发生在 WSL 中。
好的,我不知道这是否会为每个人解决问题,原始问题中的评论提供了一些对我不起作用的其他解决方案。 但我确实在本节的本指南中找到了解决方案配置 pinentry 以使用正确的 TTY
这是一个问题,我必须按照此gpg-agent 文档中的说明指定正确的 TTY
因此,为了实现这一点,我在~/.bashrc
(或~/.zshrc
.zshrc 在我使用ohmyzsh
的情况下)中添加了以下内容:
# update tty for gpg-agent
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
unset SSH_AGENT_PID
export GPG_TTY=$(tty)
gpgconf --launch gpg-agent
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.