超載
在局域網(wǎng)乃至互聯(lián)網(wǎng)上,主機(jī)與主機(jī)之間的通信都是非加密的狀態(tài),屬于明文通信。所謂明文通信,就是任何登錄、操作信息,都未經(jīng)加密處理,這就帶來了極大的不安全因素。在SSH出現(xiàn)之前,其實已經(jīng)出現(xiàn)了一些協(xié)議,例如rlogin、Telnet、FT或者rsh之類的,但是它們的安全性遠(yuǎn)遠(yuǎn)不夠,這就催生了SSH(圖1)。
1995年第一個SSH程序出現(xiàn),稱之為“secure shell”,它將登錄信息全部加密,成為互聯(lián)網(wǎng)安全的一個基本解決方案,迅速在全世界獲得推廣,目前已經(jīng)成為Linux系統(tǒng)的標(biāo)準(zhǔn)配置。簡單說,SSH是一種網(wǎng)絡(luò)協(xié)議,用于計算機(jī)之間的加密登錄。除此之外,SSH也支持隧道協(xié)議、端口映射和X11連接。借助SFTP或SCP協(xié)議,SSH還可以傳輸文件。
SSH協(xié)議框架中最主要的部分是三個協(xié)議:
1、傳輸層協(xié)議(The Transport Layer Protocol):傳輸層協(xié)議提供服務(wù)器認(rèn)證,數(shù)據(jù)機(jī)密性,信息完整性等的支持。
2、用戶認(rèn)證協(xié)議(The User Authentication Protocol):用戶認(rèn)證協(xié)議為服務(wù)器提供客戶端的身份鑒別。
3、連接協(xié)議(The Connection Protocol):連接協(xié)議將加密的信息隧道復(fù)用成若干個邏輯通道,提供給更高層的應(yīng)用協(xié)議使用。
SSH最重要的功能當(dāng)然是主機(jī)與主機(jī)之間的通訊,但最大的區(qū)別就在于通訊過程中的加密。所以,SSH的工作原理也有所區(qū)別:
(1)遠(yuǎn)程主機(jī)收到用戶的登錄請求,把自己的公鑰發(fā)給用戶。
(2)用戶使用這個公鑰,將登錄密碼加密后,發(fā)送回來。
(3)遠(yuǎn)程主機(jī)用自己的私鑰,解密登錄密碼,如果密碼正確,就同意用戶登錄(圖2)。
詳細(xì)解析它的工作原理,就是服務(wù)器啟動的時候自己產(chǎn)生一個密鑰(76 8 b i t公鑰),本地的S S H客戶端發(fā)送連接請求到S S H服務(wù)器,服務(wù)器檢查連接點(diǎn)客戶端發(fā)送的數(shù)據(jù)和I P地址,確認(rèn)合法后發(fā)送密鑰( 76 8 b i ts)給客戶端,此時客戶端將本地私鑰(256bit)和服務(wù)器的公鑰(768bit)結(jié)合成密鑰對key(1024bit)并發(fā)回給服務(wù)器端,從而建立連接。在這種機(jī)制之下的連接通訊,讓SSH具備了高可靠性、高安全性(相對而言)。
具體來說,在使用S SH登錄工具時,S SH客戶端的登錄方式是這樣的(圖3):
ssh user@remote -p port
其中,“user”是你在遠(yuǎn)程機(jī)器上的用戶名,如果不指定的話默認(rèn)為當(dāng)前用戶;“r emot e”則是遠(yuǎn)程機(jī)器的地址,可以是I P 地址(局域網(wǎng))、域名(局域網(wǎng)、廣域網(wǎng));最后的“por t”是指SSH服務(wù)器端監(jiān)聽端口,如果不指定的話就為默認(rèn)值22(SSH協(xié)議專用端口)。這樣的登錄命令執(zhí)行后,再依據(jù)提示確認(rèn)公鑰、輸入私鑰就可以了(圖4)。
從安全性角度上看這樣的“雙保險”可以最大限度確保SSH的安全性連接,但是它也造成了不必要的麻煩——驗證公鑰,輸入私鑰這樣繁瑣的操作。其實,這些也可以通過SSH的客戶端軟件實現(xiàn)免密鑰登錄的。我們就以Windows平臺下的Putty(SSH登錄工具)舉例說明(圖5)。
除了打開putty的界面按照提示設(shè)置登錄SSH之外,我們還可以使用快捷方式的辦法來實現(xiàn)快捷登錄,方法是新建一個Putty的快捷方式,然后右鍵單擊該快捷方式,然后選擇“屬性”,在“目標(biāo)”欄中我們添加“ -ssh -l root -P 22 123.123.123.123 -pw 456”。注意,首先這個參數(shù)添加時要在putty.exe后連接一個空格,其次,“22”為端口號,如果目標(biāo)電腦的SSH為特殊指定的端口,那么這里也要進(jìn)行相應(yīng)修改;接下來是IP地址或域名,根據(jù)實際情況修改即可;最后就是密碼-pw后,輸入目標(biāo)電腦的SSH密碼就行了(圖6)。
設(shè)置完畢點(diǎn)擊確定,并雙擊這個快捷方式,它便可以自動連接到指定好的目標(biāo)主機(jī)SSH上,再確認(rèn)保存一下公鑰,日后再使用就完全不需要輸入用戶名密碼了,非常方便。當(dāng)然,這只是SSH最基本的登錄方法,具體要實現(xiàn)何種操作,則是根據(jù)你輸入的命令來決定的,有興趣的讀者不妨多多摸索。