SSH(Secure Shell)簡介
企業越來越多地應用SSH(Secure Shell)技術來進行遠程控制和數據傳輸工作,主要原因是其基于成熟的PKI(公鑰基礎設施,Public Key Infrastructure)技術,并且實現起來較為輕便。本文將詳細介紹企業如何應用SSH進行數據傳輸及遠程控制通道加密。
SSH原理
SSH協議是建立在應用層和傳輸層基礎上的安全協議,其主要由以下三部分組成,共同實現SSH的安全保密機制:
傳輸層協議。該協議提供諸如認證、信任和完整性檢驗等安全措施,此外還可以任意地提供數據壓縮功能。通常情況下,這些傳輸層協議都建立在面向連接的TCP數據流之上。
用戶認證協議層。用來實現服務器的跟客戶端用戶之間的身份認證,其運行在傳輸層協議之上。
連接協議層。分配多個加密通道至一些邏輯通道上,它運行在用戶認證層協議之上。
SSH是由客戶端和服務端的軟件組成的,有兩個不兼容的版本分別是:1.x和2.x。用SSH 2.x的客戶程序是不能連接到SSH 1.x的服務程序上去的。OpenSSH 2.x同時支持SSH 1.x和2.x。
從客戶端來看,SSH提供兩種級別的安全驗證。
1) 第一種級別(基于口令的安全驗證):只要用戶知道自己賬號和口令,就可以登錄到遠程主機。所有傳輸的數據都會被加密,但是不能保證用戶正在連接的服務器就是用戶想連接的服務器。可能會有別的服務器在冒充真正的服務器,也就是受到“中間人”這種方式的攻擊。
2) 第二種級別(基于密鑰的安全驗證):需要依靠密鑰,也就是用戶必須為自己創建一對密鑰,并把公用密鑰放在需要訪問的服務器上。如果用戶要連接到SSH服務器上,客戶端軟件就會向服務器發出請求,請求用用戶的密鑰進行安全驗證。服務器收到請求之后,先在用戶在該服務器的家目錄下尋找用戶的公用密鑰,然后把它和用戶發送過來的公用密鑰進行比較。如果兩個密鑰一致,服務器就用公用密鑰加密“質詢”(challenge)并把它發送給客戶端軟件。客戶端軟件收到“質詢”之后就可以用用戶的私人密鑰解密再把它發送給服務器。用這種方式,必須知道自己密鑰的口令。但是,與第一種級別相比,第二種級別不須要在網絡上傳送口令。第二種級別不僅加密所有傳送的數據,而且“中間人”這種攻擊方式也是不可能的(因為他沒有用戶的私人密鑰)。#p#
快速安裝OpenSSH
要安裝最新版本的OpenSSH,可以從網站http://www.openssh.com/上下載其發布的最新版本openssh-6.1p1.tar.gz然后按照如下命令進行安裝即可:
(1)解壓縮源碼包
#tar xzvf openssh-6.1p1.tar.gz
(2)預編譯,生成makefile文件
#cd openssh-6.1p1
#./configure
(3)安裝
#make
#make install
安裝完成了之后,可以使用下述命令(Red Hat和Fedora系列)進行啟動:
#service sshd start
或者命令(Ubuntu系列):
#/etc/initd/sshd start