背景
我在Qunar的工作是运维开发,因此需要通过终端连接到远程开发机进行工作,由于安全等因素,登录开发机时需要先登录跳板机,然后在跳板机上再实际连接开发机,如下图所示:
正常的登录流程
使用ssh命令登录跳板机,输入自己的设置的密码+token生成的动态密码;
登录跳板机成功后,在跳板机分配的终端中使用ssh命令再登录开发机,跳板机和开发机之间采用带密码的ssh验证,因此需要输入ssh私钥的密码。
登录过程如下图所示:
连接跳板机
输入用户名
输入用户密码+token动态密码
跳板机登录成功
从跳板机上登录开发机
输入ssh私钥密码后,登录成功
简化流程
登录跳板机,输入用户名这个过程可以简化,即使用XShell自动完成用户名的输入,如下图所示:
登录跳板机成功后,可以设置自动登录开发机
下图是XShell登录跳板机成功后,自动输入的登录开发机命令:
接下来问题的关键就是跳板机如何自动输入ssh私钥密码,以实现自动登录开发机。为了实现自动登录,我们需要使用XShell再带的Xagent工具;
首先在菜单栏找到“工具”->”Xagent 开始(A)”,并在其中添加登录开发机要用到的ssh私钥,如下所示:
接下来还需要对XShell登录跳板机的会话进行设置,如下所示:
进行以上设置后,进行登录,其效果如下:
总结
经过对XShell的设置,我们最终实现了,只需输入跳板机登录的动态口令,即可完成整个登录流程的效果,大大简化了日常的登录流程,节省了时间。