即使代理已启动,如果未设置某些环境变量,也不会引用代理。此外,即使代理,变量和变量都没问题,身份也不会自动发送给代理:这是的任务ssh-askpass
,仅在X会话中有效。
如果您正在使用bash,请创建~/.bash_profile
具有以下内容的文件:
# File: ~/.bash_profile
# source ~/.profile, if available
if [[ -r ~/.profile ]]; then
. ~/.profile
fi
# start agent and set environment variables, if needed
agent_started=0
if ! env | grep -q SSH_AGENT_PID >/dev/null; then
echo "Starting ssh agent"
eval $(ssh-agent -s)
agent_started=1
fi
# ssh become a function, adding identity to agent when needed
ssh() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/ssh "$@"
}
export -f ssh
# another example: git
git() {
if ! ssh-add -l >/dev/null 2>&-; then
ssh-add ~/.ssh/id_dsa
fi
/usr/bin/git "$@"
}
export -f git
根据~/.ssh/id_dsa
需要修改文件名,并将此行添加到~/.bash_logout
# stuff to add at end of ~/.bash_logout
if ((agent_started)); then
echo "Killing ssh agent"
ssh-agent -k
fi
最后一点:这不会干扰gnome会话,因为在这种情况下,它仅~/.profile
是来源,并且您可以从ssh-askpass
要求输入密码并将其发送到的图形界面中受益ssh-agent
。
ssh-agent
正在运行:ps -ef | grep '[s]sh-agent'