我跟着 使用 gpg 加密的 netrc 文件 教程。我编辑了我的
~/.profile
像这样
if test -f $HOME/.gpg-agent-info && \
kill -0 `cut -d: -f 2 $HOME/.gpg-agent-info` 2>/dev/null; then
GPG_AGENT_INFO=`cat $HOME/.gpg-agent-info | cut -c 16-`
else
# No, gpg-agent not available; start gpg-agent
eval `gpg-agent --daemon --no-grab --write-env-file $HOME/.gpg-agent-info`
fi
export GPG_TTY=`tty`
export GPG_AGENT_INFO
这是ls
为了./gnupg
~/.gnupg$ ls
openpgp-revocs.d private-keys-v1.d pubring.kbx pubring.kbx~ random_seed trustdb.gpg
它不起作用,当我重新启动 Ubuntu 时,会弹出错误消息,表明我已经有一个 gpg-agent 正在运行。如何检查并解决这个问题?
eval `gpg-agent --daemon --no-grab $HOME/.gpg-agent-info`
gpg-agent: a gpg-agent is already running - not starting a new one
答案1
该教程已过时,您~/.profile
现在应该添加的只是GPG_TTY=$(tty)
.
在现代 Ubuntu 系统上,GPG 代理套接字已打开/run/user/$UID/gnupg
,systemd 将在运行gpg-agent
时自动启动gpg
并尝试访问代理套接字。
为了确认这一点,gpgconf --list-dirs agent-socket
将显示它用于套接字的路径,并且systemctl --user status gpg-agent
应该显示已经运行的代理的状态。