1. 多條連接共享
如果你需要在多個窗口中打開到同一個服務器的連接,而不想每次都輸入用戶名,密碼,或是等待連接建立,那么你可以配置SSH的連接共享選項,在本地打開你的SSH配置文件,通常它們位于~/.ssh/config,然后添加下面2行:
復制代碼 代碼如下:ControlMaster autoControlPath /tmp/ssh_mux_%h_%p_%r現在試試斷開你與服務器的連接,并建立一條新連接,然后打開一個新窗口,再創建一條連接,你會發現,第二條連接幾乎是在瞬間就建立好了。
Windows用戶
如果你是Windows用戶,很不幸,最流行的開源SSH客戶端Putty并不支持這個特性,但是Windows上也有OpenSSH的實現,比如這個Copssh,如果你覺得下面的一些技巧對你很有幫助,或許你應該試試Copssh。
文件傳輸
連接共享不止可以幫助你共享多個SSH連接,如果你需要通過SFTP與服務器傳輸文件,你會發現,它們使用的依然是同一條連接,如果你使用的 Bash,你會發現,你甚至SSH甚至支持Tab對服務器端文件進行自動補全,共享連接選項對于那些需要借助SSH的工具,比如rsync,git等等也 同樣有效。
2. 長連接
如果你發現自己每條需要連接同一個服務器無數次,那么長連接選項就是為你準備的:
復制代碼 代碼如下:ControlPersist 4h
現在你每次通過SSH與服務器建立連接之后,這條連接將被保持4個小時,即使在你退出服務器之后,這條連接依然可以重用,因此,在你下一次(4小時 之內)登錄服務器時,你會發現連接以閃電般的速度建立完成,這個選項對于通過scp拷貝多個文件提速尤其明顯,因為你不在需要為每個文件做單獨的認證了。
3. 別再輸入密碼
如果你還在通過密碼方式登錄SSH,那么你或許應該試試SSH Keys,首先使用OpenSSH為自己聲稱一對密鑰:
復制代碼 代碼如下:$ ssh-keygen
跟隨指示,完成之后,你應該可以在你的.ssh目錄下看到兩個文件,id_rsa就是你的私鑰,而id_ras.pub則是你的公鑰,現在你需要將你的公鑰拷貝到服務器上,如果你的系統有ssh-copy-id命令,拷貝會很簡單:
復制代碼 代碼如下:$ ssh-copy-id smylers@compo.example.org
否則,你需要手動將你的私鑰拷貝的服務器上的~/.ssh/authorized_keys文件中:
復制代碼 代碼如下:$ < ~/.ssh/id_rsa.pub ssh clegg.example.org ‘mkdir -p .ssh; cat >> .ssh/authorized_keys; chmod go-w .ssh .ssh/authorized_keys'
現在試試重新連接到SSH服務器,或是拷貝文件,是不是已經不需要再輸入密碼了?
為Putty配置SSH Key
Putty也可以使用SSH Key,從Putty網站下載PuttyGen和Pageant,然后使用PuttyGen生成你的密鑰,將公鑰拷貝到服務器的'.ssh/authorized_keys'目錄,然后運行Pageant,導入你的私鑰,讓它在后臺運行,險隘你就可以使用Putty通過公鑰直接登錄服務器了,你可以在Putty手冊的第8,9章了解關于這一特性的詳細介紹。
4. 連接中轉
有時候你可能需要從一個服務器連接另外一個服務器,比如在兩個服務器之間直接傳輸數據,而不用通過本地電腦中轉:
復制代碼 代碼如下:www1 $ scp -pr templates www2:$PWD
(順便說一下,當你需要在兩臺服務器間拷貝文件時,$PWD變量時非常有用的),因為即使你已經在兩臺服務器上添加了你本地電腦的公鑰,scp默認 仍然會提示你輸入密碼:這是因為你用來作為跳板的那臺服務器上并沒有你的私鑰,所以,第二胎服務器會拒絕你的公鑰,但是一定不要通過將你的私鑰拷貝到中轉 服務器上來解決這個問題,你可以使用agent forwarding來解決這個問題,只要在你的.ssh/config文件中加入下面這行代碼就可以了:
新聞熱點
疑難解答