搭建了一个跳板机,强制使用密钥对登陆机器,同时需要用户在本地开启ForwardAgent
,跳板机上创建SSH_AUTH_SOCK
,透传私钥。然而常常有用户在本地没有正确配置,导致上了跳板机之后,再SSH 就会失败,于是我在跳板机的.bashrc
上写了一段检测脚本,如果变量$SSH_AUTH_SOCK
不存在,就引导用户去看Wiki,不要烦我啦!
用了一段时间,有用户发现scp 文件到跳板机时会失败,Google 一下:SCP doesn't work when echo in .bashrc?,怎么判断当前会话是scp?:Can I tell if I'm in an scp session in my .bashrc?。
改下脚本:
if [ -n "$PS1" ] && [ -z $SSH_AUTH_SOCK ];then
echo ""
echo "创建SSH_AUTH_SOCK 失败!"
echo "1.请在本机执行 ssh-add 添加私钥至 ssh-agent"
echo "2.请在~/.ssh/config 配置:ForwardAgent yes"
echo "详细帮助:wiki..."
echo ""
fi
搞定!