繁体   English   中英

GPG 未能签署 git 提交的数据。 但它首先签署本地文件后工作?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM