簡單的來講:SSL是安全傳輸的一種安全協議,SSH只是在傳輸的時候爲了防止"中間人"篡改數據而提供的安全的"通道"shell
在使用的時候咱們只關心傳輸數據的安全性,那麼在對於傳輸層和應用層,在數據請求返回的時候就存在安全性的問題:安全
1."中間人"篡改數據,而且能夠假裝爲服務器提供給客戶端數據服務器
由此就有了SSL和SSH 網絡
SSL是安全套接層(security socket layer)socket
SSL協議使用通信雙方的客戶證書以及CA根證書,容許客戶/服務器應用以一種不能被偷聽的方式通信,在通信雙方間創建起了一條安全的、可信任的通信通道。它具有如下基本特徵:信息保密性、信息完整性、相互鑑定。 主要用於提升應用程序之間數據的安全係數。SSL協議的整個概念能夠被總結爲:一個保證任何安裝了安全套接字的客戶和服務器間事務安全的協議,它涉及全部TC/IP應用程序。加密
SSH是安全外殼協議(security shell)事務
它的本質是在http/ftp等應用層提供一個安全的"通道",避免了"中間人"的攻擊,SSH是由客戶端和服務端軟件構成的.it
SSH的安全驗證是如何工做的從客戶端來看,SSH提供兩種級別的安全驗證。第一種級別(基於口令的安全驗證)只要你知道本身賬號和口令,就能夠登陸到遠程主機。全部傳輸的數據都會被加密,可是不能保證你正在鏈接的服務器就是你想鏈接的服務器。可能會有別的服務器在冒充真正的服務器,也就是受到「中間人」這種方式的攻擊。第二種級別(基於密匙的安全驗證)須要依靠密匙,也就是你必須爲本身建立一對密匙,並把公用密匙放在須要訪問的服務器上。若是你要鏈接到SSH服務器上,客戶端軟件就會向服務器發出請求,請求用你的密匙進行安全驗證。服務器收到請求以後,先在你在該服務器的家目錄下尋找你的公用密匙,而後把它和你發送過來的公用密匙進行比較。若是兩個密匙一致,服務器就用公用密匙加密「質詢」(challenge)並把它發送給客戶端軟件。客戶端軟件收到「質詢」以後就能夠用你的私人密匙解密再把它發送給服務器。用這種方式,你必須知道本身密匙的口令。可是,與第一種級別相比,第二種級別不須要在網絡上傳送口令。第二種級別不只加密全部傳送的數據,並且「中間人」這種攻擊方式也是不可能的(由於他沒有你的私人密匙)。可是整個登陸的過程可能須要10秒。class