在開篇之前,讓我們先對 SSH 協定有個宏觀的大致瞭解,這樣更有利於我們對本文的加深瞭解。 首先要提到的就是HTTP://www.aliyun.com/zixun/aggregation/11991.html">電腦網路通訊協定,所謂電腦網路通訊協定,簡單的說就是定義了一套標準和規則, 使得不同電腦之間能夠進行正常的網路通信,不至於出現在一台機器上發出的指令到另一台機器上成了不可認的亂碼,SSH 就是眾多協定的其中之一。 經典的七層 OSI 模型(Open System Interconnection Reference Model)出現後,大大地解決了網路互聯的相容性問題,它將網路劃分成服務、介面和協定三個部分,而協定就是說明本層的服務是如何實現的。 SSH、Telnet 協定則主要被使用在使用者層中(如圖 1 深色部分所示),即應用層、表現層和工作階段層。
圖 1. 七層 OSI 模型
介紹 SSH
什麼是 SSH
SSH(Secure Shell Protocol)是在一個不安全的網路,進行安全遠端登入和其他安全網路服務的協定。 這個定義出自于 IETF(Internet Engineering Task Force)。 在 TCP/IP 五層模型中,SSH 是被應用於應用層和傳輸層的安全協定。
SSH 的優點
傳統的網路傳輸,如:Telnet、FTP 等,採用的是明文傳輸資料和口令,這樣很容易被駭客這樣的中間人嗅探到傳輸過程中的資料,大大降低了網路的通信安全。 而 SSH 協定則採用資料加密的方式建立起一個安全的網路傳輸通道,增強了資料在網路傳輸過程中的安全性。 資料加密程度的複雜,會導致佔用更多的網路資源。 SSH 會對加密資料進行一定的壓縮操作,從而減緩對網路頻寬的佔用。 總結起來,SSH 的優點如下:
資料加密,提高安全性 資料壓縮,提高網路的傳送速率。
SSH 的架構
在對 SSH 有了一個初步的認識之後,我們來看看 SSH 協定是如何做到資料的安全通信。 首先來看下 SSH 協定的主要架構:
圖 2. SSH 協定的構成
傳輸層協定: 通常運行在 TCP/IP 的上層,是許多安全網路服務的基礎,提供了資料加密、壓縮、伺服器認證以及保證資料的完整性。 比如,公共金鑰演算法、對稱加密演算法、消息驗證演算法等。
使用者認證協定:運行在 SSH 協定的傳輸層之上,用來檢測用戶端的驗證方式是否合法。
連線協定:運行在使用者認證層之上,提供了交互登錄會話、遠端命令的執行、轉發 TCP/IP 連接等功能,給資料通訊提供一個安全的,可靠的加密傳輸通道。