在 Fedora 22 上,gpg 找不到 gpg-agent:
% gpg-agent --daemon
% gpg -vvv --use-agent --no-tty --decrypt file.gpg
gpg: using character set `utf-8'
:pubkey enc packet: version 3, algo 1, keyid 3060B8F7271AFBAF
data: [4094 bits]
gpg: public key is 271AFBAF
gpg: using subkey 271AFBAF instead of primary key 50EA64D5
gpg: using subkey 271AFBAF instead of primary key 50EA64D5
gpg: gpg-agent is not available in this session
gpg: Sorry, no terminal at all requested - can't get input
答案1
查看版本可以发现问题:
% gpg-agent --version
gpg-agent (GnuPG) 2.1.7
% gpg --version
gpg (GnuPG) 1.4.19
这些组件来自不同的包(gnupg2-2.1.7-1.fc22.x86_64
就
gnupg-1.4.19-2.fc22.x86_64
我而言)。解决方案是使用gpg2
命令而不是gpg
.
答案2
如果这对某些人有帮助,gpg
1.4 可以与 2.1 一起很好地工作gpg-agent
。
查了一下,发现了这个帖子:https://lists.gnupg.org/pipermail/gnupg-devel/2014-October/029024.html
该代理是兼容的,但不再导出旧版本 gpg 所需的环境变量。如果您手动设置它们,它就会起作用:
export GPG_AGENT_INFO=${HOME}/.gnupg/S.gpg-agent:0:1