Gpg
如何讓 gpg 找到 gpg-agent
在 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
查看版本揭示了問題:
% 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
.
如果它對某些人有幫助,
gpg
1.4 可以與gpg-agent
2.1 一起工作。在調查時,我發現了這篇文章:https ://lists.gnupg.org/pipermail/gnupg-devel/2014-October/029024.html
代理是兼容的,但不再導出舊版本 gpg 期望的環境變數。如果您手動設置它們,它將起作用:
export GPG_AGENT_INFO=${HOME}/.gnupg/S.gpg-agent:0:1