gpg:签名失败:没有这样的文件或目录

gpg:签名失败:没有这样的文件或目录

我在 WSL2 Debian 上使用 GPG 一段时间了,一切都很完美,但昨天我在使用 git 时开始收到有关 gpg 标志的错误。

尝试运行echo "test" | gpg --clearsign,我收到以下消息:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

test
gpg: signing failed: No such file or directory
gpg: [stdin]: clear-sign failed: No such file or directory

我尝试了以下方法来解决该问题:

  • gpgconf --kill gpg-agent使用和杀死 gpg-agentkillall gpg-agent
  • 重新启动 WSL2
  • 重新启动我的主机
  • 生成一个新密钥,这给了我与测试标志相同的消息
  • 创建一个带有选项的gpg.conf文件no-tty
  • 使用chmod 700~/.gnupg/private-keys-v1.d

我正在使用 gpg 版本 2.2.27 和 libgcrypt 1.8.8。

答案1

事实证明,有些东西覆盖了我的tty变量,这让 gpg 变得疯狂,因为在我的变量中,.zshrc我已导出GPG_TTY$(tty).我设法解决了这个问题export GPG_TTY=`tty`

编辑:经过进一步调查,我发现故障出在 Powerlevel10k 内,有关详细信息,请参阅这个 StackExchange 线程

答案2

我在 Debian 上使用 Rider 时遇到了这个问题。

最后按照以下说明解决了该问题:https://wiki.archlinux.org/title/GnuPG#Unattended_pa​​ssphrase

添加allow-loopback-pinentry~/.gnupg/gpg-agent.conf

添加pinentry-mode loopback~/.gnupg/gpg.conf

相关内容