服務器標配 SSH 協議,你瞭解多少?

年初,新冠肺炎疫情的出現,全國數千萬名員工在家遠程辦公,使用我的設備經過家庭網絡訪問公司資料。所以,IT 安全團隊面臨了衆多新挑戰:如何實施更加安全的身份驗證方案,以確保只有受權人員和設備才能訪問公司敏感資產?html

很多小夥伴想起了 SSH,其實你們對它都比較熟悉。大到虛擬機、服務器,小到手機、家電,Linux 設備普及愈來愈廣,SSH 的運用也愈來愈普遍。不只攻城獅、程序猿離不開它,普通用戶也基本都在使用。SSH 能夠說是各服務器的標配,有了 SSH,咱們沒必要每次都要蹲到機房裏鏈接服務器配置服務器,直接遠程就能夠操做,一樣,有了 SSH,也能解決遠程辦公的一些安全性問題。算法

下面咱們就來詳細瞭解一下 SSH 的傳奇故事。shell

什麼是 SSH

SSH(Secure Shell)是一種加密的網絡傳輸協議,它容許用戶經過 Internet 控制和修改遠程服務器。該協議的出現替代了未加密的登陸協議(例如 telnet/rlogin)和不安全的文件傳輸方法(例如 FTP),並使用了加密技術來確保與遠程服務器之間的全部通訊都以加密的方式進行。它提供了一種機制,用於驗證遠程用戶,將輸入從客戶端傳輸到服務器,以及將輸出中繼回客戶端。安全

SSH 簡易流程

SSH 提供了強大的加密和完整性保護。在客戶端和服務器之間創建鏈接後,SSH 將根據設置中協商的參數對傳輸的數據進行加密。在協商過程當中,客戶端和服務器根據使用的對稱加密算法達成一致,並生成將要使用的加密密鑰。通信雙方之間的通訊受到行業標準的強加密算法(例如 AES(高級加密標準))的保護,而且 SSH 協議還包括一種機制,該機制經過使用標準哈希算法(例如 SHA)來確保傳輸數據的完整性。服務器

SSH 除了提供強大的加密功能外,網絡管理員還普遍使用 SSH 遠程管理系統和應用程序,交付軟件補丁或執行命令並移動文件。網絡

SSH 協議如何工做

任何 Linux 或 macOS 用戶均可以直接從終端窗口經過 SSH 進入其餘遠程服務器。而 Windows 用戶能夠利用 Xshell、Putty 之類的 SSH 客戶端。進入以後就能夠與直接操做遠程計算機相同的方式執行 Shell 命令。架構

SSH 默認在 TCP 端口 22 上運行(能夠根據需求修改)。服務器在 22 端口上監聽傳入的鏈接。若是驗證成功,它將對客戶端進行身份驗證並打開正確的通道來進行安全鏈接。客戶端必須經過與服務器啓動 TCP 握手,確保安全的對稱鏈接,驗證服務器顯示的身份是否與之前的記錄(一般記錄在 RSA 密鑰存儲文件中)匹配,並提供所需的用戶憑據來開始 SSH 鏈接。ssh

服務器(主機)身份驗證工具

SSH 協議內置於 Unix 和 Linux 服務器中,以實現系統之間的安全鏈接。該鏈接由請求鏈接到 SSH 服務器的客戶端創建。SSH 客戶端啓動鏈接創建過程,並使用公共密鑰加密技術來驗證 SSH 服務器的身份。在設置階段以後,SSH 協議使用強大的對稱加密和哈希算法來確保客戶端和服務器之間交換數據的私密性和完整性。網絡傳輸協議

下圖是根據 NIST IR 7966 改編而成的,它簡化了 SSH 鏈接的流程:

  • 客戶端啓動與 SSH 服務器的鏈接
  • 服務器將其公鑰發送給客戶端
  • 服務器的公鑰保存在客戶端的已知主機文件中
  • 客戶端與服務器協商鏈接參數並創建鏈接

客戶端(用戶)身份驗證

SSH 協議使用傳統密碼或公共密鑰來啓用客戶端身份驗證。可是,鑑於使用密碼的風險和效率低下,公鑰身份驗證被更普遍地使用。SSH 密鑰不只比密碼更強大,並且系統管理員還能夠繞過基於密碼的手動登陸。

用戶如何使用 SSH 密鑰進行身份驗證呢?它們可使用 ssh-keygen 命令與 SSH 客戶端(例如 OpenSSH)生成一個公私鑰對。建立後,用戶將其受權密鑰(公共密鑰)放入須要鏈接的服務器上的 authorized_keys 文件中。

當用戶使用基於密鑰的身份驗證遠程登陸時,OpenSSH 服務器將查找受權密鑰,而後用戶使用其對應的私鑰向服務器進行身份驗證。因爲不須要手動身份驗證,所以一般使用基於密鑰的身份驗證用於 IT 流程的自動化,例如安全的文件傳輸,備份和複製流程或配置管理工具(例如 Ansible,Terraform,Chef 或 Puppet) 。

SSH 協議的常見用例

SSH 鏈接主要用於保護本地計算機和遠程主機之間不一樣類型的通訊,包括:

  • 安全遠程訪問資源
  • 遠程執行命令
  • 交付軟件補丁和更新
  • 交互式和自動文件傳輸

除了在本地計算機和遠程計算機之間建立安全通道外,SSH 協議還用於管理重要的公司基礎結構,例如路由器,服務器硬件,虛擬化平臺和操做系統等。

SSH 密鑰用於自動訪問服務器,一般用於腳本,備份系統和配置管理工具中。因爲其設計容許跨組織邊界的鏈接,而且 SSH 密鑰提供了單點登陸(SSO)功能,使用戶無需每次輸入密碼便可在各個賬戶之間移動。

最後,插播段小廣告:又拍雲的「一鍵登陸」功能,和 SSH 密鑰登陸相似,用戶僅須要容許服務商應用獲取本機手機號碼,並經過運營商網絡上傳,便可完成用戶身份校驗。不須要頻繁的輸入密碼和手機驗證碼,很大程度上下降了註冊、登陸環節的用戶流失。

推薦閱讀

技術選型:爲何批處理咱們卻選擇了Flink

有贊統一接入層架構演進

相關文章
相關標籤/搜索