使用ControlPersist特性自動登陸SSH服務器


本文介紹一種自動登陸SSH服務器的方法,那就是使用ControlPersist特性。

 

背景介紹

很多公司都使用靜態密碼+動態密碼的方式登陸跳板機,某些還會強制一個動態密碼只能登陸一次,於是我們面臨着等一分鍾才能登陸一次跳板機,很不方便。本文介紹一種在本機的設置,免除每次輸入密碼的方法。

 

實現方法

此功能是使用SSH的ControlPersist特性,SSH版本必須是5.6或以上版本才可使用ControlPersist特性。

 

多條連接共享

如果你需要在多個窗口中打開到同一個服務器的連接,而不想每次都輸入用戶名,密碼,或是等待連接建立,那么你可以配置SSH的連接共享選項,在本地打開你的SSH配置文件,通常它們位於~/.ssh/config,然后添加下面2行(ControlMaster配合ControlPath一起使用):

ControlMaster auto

ControlPath /tmp/ssh_mux_%h_%p_%r

現在試試斷開你與服務器的連接,並建立一條新連接,然后打開一個新窗口,再創建一條連接,你會發現,第二條連接幾乎是在瞬間就建立好了。

 

Windows用戶

如果你是Windows用戶,很不幸,最流行的開源SSH客戶端Putty不一定支持這個特性,但是Windows上也有OpenSSH的實現,比如Copssh。

 

文件傳輸

連接共享不止可以幫助你共享多個SSH連接,如果你需要通過SFTP與服務器傳輸文件,你會發現,它們使用的依然是同一條連接,如果你使用的Bash,你會發現,你甚至SSH甚至支持Tab對服務器端文件進行自動補全,共享連接選項對於那些需要借助SSH的工具,比如rsync,git等等也同樣有效。

 

長連接

如果你發現自己每條需要連接同一個服務器無數次,那么長連接選項就是為你准備的。

ControlPersist yes

打開之后即使關閉了所有的已連接ssh連接,一段時間內也能無需密碼重新連接。

ControlPersist 4h

每次通過SSH與服務器建立連接之后,這條連接將被保持4個小時,即使在你退出服務器之后這條連接依然可以重用,因此,在你下一次(4小時之內)登錄服務器時,你會發現連接以閃電般的速度建立完成,這個選項對於通過scp拷貝多個文件提速尤其明顯,因為你不在需要為每個文件做單獨的認證了。

Compression為壓縮選項,打開之后加快數據傳輸速度。

 

具體配置方法

此時我們打開ssh客戶端/shell命令行,編輯~/.ssh/config文件。

運行:vim ~/.ssh/config

Host *

ControlPersist yes

ControlMaster auto

ControlPath ~/.ssh/%r@%h-%p

Compression yes

如果登陸服務器地址為web.imike.me,通常每次都要輸入ssh web.imike.me這樣一長串。優化上面的配置可減少輸入,提高效率。如下:

Host web

HostName web.imike.me

ControlPersist yes

ControlMaster auto

ControlPath ~/.ssh/%r@%h-%p

Compression yes

這樣每次只需輸入ssh web即可登陸。大家自行修改HostName和ControlPath字段就可以。

用指定用戶名和指定端口登陸,可以使用下面的代替,同理使用ssh web02命令登陸。

Host web02

HostName 202.202.202.202

User mike

Port 2698

ControlPersist yes

ControlMaster auto

ControlPath ~/.ssh/%r@%h-%p

Compression yes


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM