服务器标配 SSH 协议,你了解多少?
年初,新冠肺炎疫情的出現,全國數千萬名員工在家遠程辦公,使用個人設備通過家庭網絡訪問公司資料。因此,IT 安全團隊面臨了眾多新挑戰:如何實施更加安全的身份驗證方案,以確保只有授權人員和設備才能訪問公司敏感資產?
不少小伙伴想起了 SSH,其實大家對它都比較熟悉。大到虛擬機、服務器,小到手機、家電,Linux 設備普及越來越廣,SSH 的運用也越來越廣泛。不僅攻城獅、程序猿離不開它,普通用戶也基本都在使用。SSH 可以說是各服務器的標配,有了 SSH,我們不必每次都要蹲到機房里連接服務器配置服務器,直接遠程就可以操作,同樣,有了 SSH,也能解決遠程辦公的一些安全性問題。
下面我們就來詳細了解一下 SSH 的傳奇故事。
什么是 SSH
SSH(Secure Shell)是一種加密的網絡傳輸協議,它允許用戶通過 Internet 控制和修改遠程服務器。該協議的出現替代了未加密的登錄協議(例如 telnet/rlogin)和不安全的文件傳輸方法(例如 FTP),并使用了加密技術來確保與遠程服務器之間的所有通信都以加密的方式進行。它提供了一種機制,用于驗證遠程用戶,將輸入從客戶端傳輸到服務器,以及將輸出中繼回客戶端。
SSH 提供了強大的加密和完整性保護。在客戶端和服務器之間建立連接后,SSH 將根據設置中協商的參數對傳輸的數據進行加密。在協商過程中,客戶端和服務器根據使用的對稱加密算法達成一致,并生成將要使用的加密密鑰。通訊雙方之間的通信受到行業標準的強加密算法(例如 AES(高級加密標準))的保護,并且 SSH 協議還包括一種機制,該機制通過使用標準哈希算法(例如 SHA)來確保傳輸數據的完整性。
SSH 除了提供強大的加密功能外,網絡管理員還廣泛使用 SSH 遠程管理系統和應用程序,交付軟件補丁或執行命令并移動文件。
SSH 協議如何工作
任何 Linux 或 macOS 用戶都可以直接從終端窗口通過 SSH 進入其他遠程服務器。而 Windows 用戶可以利用 Xshell、Putty 之類的 SSH 客戶端。進入之后就可以與直接操作遠程計算機相同的方式執行 Shell 命令。
SSH 默認在 TCP 端口 22 上運行(可以根據需求修改)。服務器在 22 端口上監聽傳入的連接。如果驗證成功,它將對客戶端進行身份驗證并打開正確的通道來進行安全連接。客戶端必須通過與服務器啟動 TCP 握手,確保安全的對稱連接,驗證服務器顯示的身份是否與以前的記錄(通常記錄在 RSA 密鑰存儲文件中)匹配,并提供所需的用戶憑據來開始 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 密鑰登錄類似,用戶僅需要允許服務商應用獲取本機手機號碼,并通過運營商網絡上傳,即可完成用戶身份校驗。不需要頻繁的輸入密碼和手機驗證碼,很大程度上降低了注冊、登錄環節的用戶流失。
總結
以上是生活随笔為你收集整理的服务器标配 SSH 协议,你了解多少?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 白话科普系列——网站靠什么提升加载速度?
- 下一篇: 云原生网络代理(MOSN)的进化之路