咱們如今使用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