gpg:代理存在问题:权限被拒绝

gpg:代理存在问题:权限被拒绝

gpg: problem with the agent: Permission denied当我切换用户后调用GPG 时,它失败了su

su - user2
gpg --symmetric --passphrase=foo foo.txt

如果我从自己的用户那里调用该命令,它不会失败。有解决方法吗?

我找到了一个话题邮件列表中的一个主题但未得到答复。据推测错误是由于:

该 tty 属于我通过 SSH 登录的原始用户,而不是我通过 su 切换到的用户

答案1

尝试使用环回的PIN输入模式:

gpg --decrypt --pinentry-mode=loopback <file>

当我使用终端 su 尝试 GPG 时,我可以在我的 Linux 系统上复制您的问题:

$ gpg --decrypt example.gpg
gpg: AES256 encrypted data
gpg: problem with the agent: Permission denied
gpg: encrypted with 1 passphrase
gpg: decryption failed: No secret key

对我有用的解决方案:

$ gpg --decrypt --pinentry-mode=loopback example.gpg
hello world

您可能还想验证您的 GPG 是否是最新的:

$ gpg --version
gpg (GnuPG) 2.2.4
libgcrypt 1.8.1
...

您可能还想将 pinentry-mode 环回添加到您的 ~/.gnupg/gpg.conf 文件中(感谢评论中的@Deathgrip)。

相关内容