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

sas*_*alm 6 lubuntu gnupg su 18.04

gpg: problem with the agent: Permission denied切换用户后调用GPG 失败su

su - user2
gpg --symmetric --passphrase=foo foo.txt
Run Code Online (Sandbox Code Playgroud)

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

在他们的邮件列表中找到了一个线程,但没有得到答复。它推测错误是因为:

tty 归我通过 SSH 登录的原始用户所有,而不是我通过 su 切换到的用户所有

小智 13

尝试使用loopback的PIN输入方式:

gpg --decrypt --pinentry-mode=loopback <file>
Run Code Online (Sandbox Code Playgroud)

当我使用终端 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
Run Code Online (Sandbox Code Playgroud)

对我有用的解决方案:

$ gpg --decrypt --pinentry-mode=loopback example.gpg
hello world
Run Code Online (Sandbox Code Playgroud)

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

$ gpg --version
gpg (GnuPG) 2.2.4
libgcrypt 1.8.1
...
Run Code Online (Sandbox Code Playgroud)

  • 还可以将 `pinentry-mode Loopback` 添加到您的 ~/.gnupg/gpg.conf 文件中。 (4认同)