咱们如今使用SSH登录虚拟机的时候须要两步,即先经过跳板机创建一个隧道,而后再登录。git
一、创建隧道ssh
ssh -vvv -N -L 9999/<要管理的虚拟机IP>/22 -p <跳板机端口> vostunnel@<跳板机IP>.net
二、经过隧道进行ssh链接blog
ssh -p 9999 root@127.0.0.1rem
但这样操做比较麻烦,不容易记住。并且,没法使用scp直接向虚拟机上拷贝文件,也没法直接使用git push来向虚拟机上push代码。get
有一个简便的方法,在本机的.ssh目录下建立config文件,在里面加入:虚拟机
Host <起个好记的名字>it
HostName <虚拟机IP>ast
User <虚拟机用户名>登录
ProxyCommand ssh -p <跳板机端口号> <跳板机IP> -W %h:%p
这样,之后就能够用这个命令来登录了:
ssh <好记的名字>
传文件也同样:
scp file <好记的名字>:/temp
git远程库:
git remote add vm ssh://<好记的名字>/home/git/repo/project1.git
备注,若是上面那种登录方法很差使,能够试试把ProxyCommand改为这个:
ProxyCommand ssh -p <跳板机端口号> <跳板机IP> nc %h %p
------------------------------------------------------------------------------------------------------------------------------------------------
另外两个小技巧 ControlMaster和ControlPersist SSH支持 ControlMaster 模式, 能够复用以前已经创建的链接。
因此开启这个功能以后, 若是已经有一条到relay的连接, 那么再链接的时候, 就不须要再输入密码了。
而 ControlPersist 参数的含义就是在最后一个链接关闭以后也不真正的关掉链接, 这样后面再链接的时候就仍是不用输入密码。
启用这两个功能, 就能够解决ssh登陆时每次都须要重复输入密码的问题了。
在 $HOME/.ssh/config 中加入如下内容:
ControlPersist 4h ControlMaster auto ControlPath ~/.ssh/master-%r@%h:%p
在作完如上设置后, 从新登陆一次你须要登陆的机器, 之后每次登陆都不用输入密码了。
https://www.ibm.com/developerworks/community/blogs/IBMzOS/entry/20150502?lang=en