.bashrc
我在我的文件中像这样启动我的 gpg-agent
[ -f ~/.gpg-agent-info ] && source ~/.gpg-agent-info
if [ -S "${GPG_AGENT_INFO%%:*}" ]; then
export GPG_AGENT_INFO
else
eval $( gpg-agent --daemon --write-env-file ~/.gpg-agent-info )
fi
GPG_TTY=$(tty)
export GPG_TTY
自从升级到 16.04 以来,当我登录时收到此消息:
gpg-agent[11727]: WARNING: "--write-env-file" is an obsolete option - it has no effect
gpg-agent[11728]: gpg-agent (GnuPG) 2.1.11 started
S.gpg-agent is written in .gnupg/
因此write-env-file
不再受支持。我无法再在 pinentry 对话框中输入我的 gpg 密码并让 gpg 重用此密码,而在 Ubuntu 14.04 下则可以。
我如何在 16.04 中进行设置?
答案1
问题似乎是 gpg-agent 2.1.11 没有设置 GPG_AGENT_INFO 环境变量。如果我导出 GPG_AGENT_INFO 以指向套接字文件,即 |export GPG_AGENT_INFO=/home//.gnupg/S.gpg-agent:12065:1,其中包含 pid 和所有者 pid,那么我就会得到密码的 pinentry 框。
答案2
gpg.conf
在我的 16.04.1 LTS 上,位于的选项文件~/.gnupg
丢失了。我创建了一个带有选项的文件use-agent
(就像在我的另一个旧 Ubuntu 14.04-LTS 上一样),它起作用了。