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