搞日常都是通过终端连接到远程开发机进行工作,由于安全等因素,登录开发机时需要先登录跳板机,然后在跳板机上再实际连接开发机,比较麻烦,如下图所示:
方便起见,研究了免phrase的路子,基于SecureCRT+ssh。
免密码登录步骤
- 将eval `/usr/local/bin/ssh-attach` 这段内容复制到你的跳板机的宿主目录下的 .bashrc文件中到底部。
- source .bashrc ,输入正确的口令(也就是passphrase,输入口令必须正确)
- 重新登陆发现,可ssh 任意机器,再无输口令的烦恼
效果图:
追加:免密码优化,一键
1. 利用CRT一键登录测试和开发机。(因为有token,所以动态密码就绕不过去了,必须要输入一次)2. Session Options -> Connection -> Logon Actions -> SSH1/SSH2 -> 添加Remote command命令追加你的二次登录地址即可,我这里是“ssh l-ttstwi55.f.beta.cn0” , ok了,因为此时passphrase已被记录id_rsa中。
效果图:
另外:如果因为跳板机重启,或者清除缓存,会导致免密码失效
报错:Could not open a connection to your authentication agent.
解决办法如下:
删除/tmp 下,属主是自己的文件和文件夹(删除ssh-*****目录)
source .bashrc ,输入正确的passphrase即可
cd /tmp && rm -rf $(ll | grep $yourname | grep ssh)
MAC系统里实现
ssh config
Host *.qunar.comServerAliveInterval 30ControlMaster autoControlPath /tmp/ssh-%r@%h:%pStrictHostKeyChecking noControlPersist yesHost *.cn1User dongliang.maIdentityFile ~/.ssh/id_rsa.cn1ProxyCommand ssh cn1.2 exec nc %h %p 2> /dev/null
Host *User dongliang.maServerAliveInterval 30ControlMaster autoControlPath /tmp/ssh-%r@%h:%p
Host cn0.1HostName l-rtools1.ops.cn0.qunar.com