ssh是什么?
一、前言
Secure Shell縮寫是SSH, 由IETF的網絡工作小組(Network Working Group)所制定,SSH是一項創建在應用層和傳輸層基礎上的安全協議,為計算機的shell提供安全的傳輸和使用環境 傳統的網絡服務程序,如rsh FTP POP Telnet本質上都是不安全的,因為它們在網絡 上是用明文傳送數據,用戶賬號,和用戶口令,很容易受到中間人攻擊方式的攻擊 存在另一個人或者一臺機器冒充真正的服務器接收用戶傳給服務器的數據,然后在冒充用戶把數據傳給真正的服務器 而SSH是目前比較可靠,專為遠程登錄回話和其他網絡服務提供安全性的協議,利用SSH協議可以有效的防止遠程管理過程中的信息泄露問題 通過SSH可以對所有的輸出數據進行加密,也能夠防止DNS欺騙和IP欺騙SSH的另一個優點是傳輸的數據可以是經過壓縮的,可以加快傳輸的速度,SSH還有很多功能, 可以代替Telnet, 可以作為FTP, POP,甚至為PPP提供一個安全的通道
二、歷史
最初的SSH協議是由芬蘭的研究員atu Yl?nen于1995年設計開發的, 但是因為受版權和加密算法的限制,現在很多人轉而使用openSSH, 它是SSH的替代軟件包,而且是開放源代碼且自由的
三、基本架構
SSH協議框架最主要的三個協議: 傳輸層協議(the transport layer protocol):傳輸層協議提供服務器認證,數據機密性, 信息完整性等的支持 用戶認證協議(the user authentication protocol): 用戶認證協議為服務器提供客戶端的身份鑒別 連接協議(the connection protocol):連接協議將加密的信息隧道復用成若干個邏輯通道,提供給更高層的應用協議使用
同時還有為許多高層的網路安全應用協議提供擴展的支持 各種高層應用協議可以相對地獨立于SSH基本體系之外,并且依靠這個基本框架,通過連接協議使用SSH的安全認證
四、SSH的安全驗證
在客戶端看來,SSH提供兩種級別的安全驗證 第一種級別-基于密碼的安全驗證,知道賬號和密碼,可以登錄到遠程主機,并且所有的傳輸數據都會被加密,但是,可能有別的服務器在冒充真正的服務器,無法避免被中間人攻擊 第二種級別-基于密鑰的安全認證,需要依靠密鑰,必須為自己創建一對密鑰,把公有密鑰放在需要訪問的服務器上 客戶端軟件會向服務器發出請求,請求用你的密鑰進行安全驗證,服務器收到請求之后,先在你的該服務器的用戶根目錄下尋找公有密鑰,然后把它和發送過來的公有密鑰進行比較,如果兩個密鑰一致,服務器使用公有密鑰加密質詢challenge,并且把它發送給客戶端軟件,從而避免被中間人攻擊
在服務器端,SSH提供安全驗證,在第一種方案中,主機將自己的公用密鑰分發給相關的客戶端,客戶端在訪問主機時候則使用該主機的公開密鑰來加密數據,主機則使用自己的私有密鑰來解密數據,從而實現主機密鑰認證,確保數據的保密性 第二種方案中,存在一個密鑰認證中心,所有提供服務的主機都將自己的公開密鑰提交給認證中心,而任何作為客戶端的主機則只要保存一份認證中心的公開密鑰就可以了,在這種模式下,客戶端必須訪問認證中心然后才能訪問服務器主機
五、SSH協議的可擴展能力
SSH協議框架中設計了大量可擴展的冗余能力,比如用戶自定義算法,客戶自定義密鑰規則,高層擴展功能性應用協議,這些擴展大多遵循IANA的有關規定,特別在重要的部分,像是命名規則和消息編碼方面
作者:一曲廣陵散
鏈接:https://www.jianshu.com/p/7d403d4a65b2
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
總結
- 上一篇: 逆天了!看大二学生做的超写实CG卷尾猴!
- 下一篇: 阿里北京裁员,首批员工3.28之前告别大