我在通过单个命令行通过 ssh 使用 gpg-agent 时遇到问题。
这是我的配置:
服务器 A:通过 ssh 触发命令。
ssh user@serverB "sudo -E /path/to/script.sh"
Run Code Online (Sandbox Code Playgroud)
服务器 B:执行需要密码签名的脚本。
系统信息:Ubuntu 12.04
我已经在服务器 B 上设置了 gpg-agent,我已经将此配置添加到 /home/user/.bashrc :
Invoke GnuPG-Agent the first time we login.
# Does `~/.gpg-agent-info' exist and points to gpg-agent process accepting signals?
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 --write-env-file $HOME/.gpg-agent-info`
fi
export GPG_TTY=`tty` …
Run Code Online (Sandbox Code Playgroud)