关于SSH Agent的使用可以见《SSH免密码认证进阶使用》一文,与GNU Screen之间会有这样一个问题:
我目前的做法是,在.bashrc增加一段代码,每次在进入bash shell时会建立一个软连接指向当时的auth socks文件,然后将SSH_AUTH_SOCK环境变量的值设置为软连接的地址,问题得以解决:
agent_file=/tmp/ssh-agent-$USER.sock
if [ "$SSH_TTY" -a "$SSH_AUTH_SOCK" -a "$SSH_AUTH_SOCK" != $agent_file ]; then
ln -sfn $SSH_AUTH_SOCK $agent_file
export SSH_AUTH_SOCK=$agent_file
fi
# 同时增加了一个函数,方便重建软连接,有些情况下用得着。
update_ssh_agent() {
for sock in /tmp/ssh-*/agent*
do
if [ -S $sock ]; then
ln -sfn $sock $agent_file
fi
done
}