SSH 是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息洩露問題。S S H最初是U N I X系統上的一個程序,後來又迅速擴展到其他操作平台。S S H在正確使用時可彌補網絡中的漏洞。客戶端包含ssh程序以及像scp(遠程拷貝)、slogin(遠程登陸)、sftp(安全文件傳輸)等其他的應用程序。SSH有很多非常酷的特性,如何它是你每天的工作伴侶,那麼我想你有必要了解以下16條高效使用SSH的秘籍,它們幫你節省的時間肯定會遠遠大於你用來配置它們的時間。
1. 在服務器間跳轉
有些時候,你可能沒法直接連接到某台服務器,而需要使用一台中間服務器進行中轉,這個過程也可以自動化。首先確保你已經為服務器配置了公鑰訪問,並開啟了agent forwarding,現在你就可以通過2條命令來連接目標服務器,不會有任何提示輸入:
$ ssh gateway
gateway $ ssh db
然後在你的本地SSH配置中,添加下面這條配置:
Host db
HostName db.internal.example.com
ProxyCommand ssh gateway netcat -q 600 %h %p
現在你就可以通過一條命令來直接連接目標服務器了:
$ ssh db
這裡你可能會需要等待長一點的時間,因為SSH需要進行兩次認證,,注意netcat也有可能被寫成nc或者ncat或者前面還需要加上g,你需要檢查你的中間服務器來確定實際的參數。
2. 省去用戶名
如果你在遠程服務器上的用戶名和你本地的用戶名不同,你同樣可以在SSH配置中進行設置:
Host www* mail
HostName %h.example.com
User simon
現在就算我的本地用戶名是 smylers,我仍然可以這樣連接我的服務器:
$ ssh www2
SSH會使用simon賬戶連接你的服務器,同樣,Putty可以保存這個信息在你的session中。
3. 主機別名
你也可以在你的SSH配置中直接定義主機別名,就像下面這樣:
Host dev
HostName dev.internal.example.com
你還可以使用通配符來進行分組:
Host dev intranet backup
HostName %h.internal.example.com
Host www* mail
HostName %h.example.com
在Putty中你可以為每個主機名保存單獨的session,然後雙擊建立連接(但是它可能沒辦法支持通配符)。
4. 省略主機名
輸入服務器的完整主機名來建立一個新的SSH連接實在是太乏味無聊了,尤其是當你有一組擁有相同域名但是子域名不同的服務器需要管理時,比如下面這樣:
* www1.example.com
* www2.example.com
* mail.example.com
* intranet.internal.example.com
* backup.internal.example.com
* dev.internal.example.com