服务器标配 SSH 协议,你了解多少?
年初,新冠肺炎疫情的出現(xiàn),全國數(shù)千萬名員工在家遠程辦公,使用個人設(shè)備通過家庭網(wǎng)絡(luò)訪問公司資料。因此,IT 安全團隊面臨了眾多新挑戰(zhàn):如何實施更加安全的身份驗證方案,以確保只有授權(quán)人員和設(shè)備才能訪問公司敏感資產(chǎn)?
不少小伙伴想起了 SSH,其實大家對它都比較熟悉。大到虛擬機、服務(wù)器,小到手機、家電,Linux 設(shè)備普及越來越廣,SSH 的運用也越來越廣泛。不僅攻城獅、程序猿離不開它,普通用戶也基本都在使用。SSH 可以說是各服務(wù)器的標配,有了 SSH,我們不必每次都要蹲到機房里連接服務(wù)器配置服務(wù)器,直接遠程就可以操作,同樣,有了 SSH,也能解決遠程辦公的一些安全性問題。
下面我們就來詳細了解一下 SSH 的傳奇故事。
什么是 SSH
SSH(Secure Shell)是一種加密的網(wǎng)絡(luò)傳輸協(xié)議,它允許用戶通過 Internet 控制和修改遠程服務(wù)器。該協(xié)議的出現(xiàn)替代了未加密的登錄協(xié)議(例如 telnet/rlogin)和不安全的文件傳輸方法(例如 FTP),并使用了加密技術(shù)來確保與遠程服務(wù)器之間的所有通信都以加密的方式進行。它提供了一種機制,用于驗證遠程用戶,將輸入從客戶端傳輸?shù)椒?wù)器,以及將輸出中繼回客戶端。
SSH 提供了強大的加密和完整性保護。在客戶端和服務(wù)器之間建立連接后,SSH 將根據(jù)設(shè)置中協(xié)商的參數(shù)對傳輸?shù)臄?shù)據(jù)進行加密。在協(xié)商過程中,客戶端和服務(wù)器根據(jù)使用的對稱加密算法達成一致,并生成將要使用的加密密鑰。通訊雙方之間的通信受到行業(yè)標準的強加密算法(例如 AES(高級加密標準))的保護,并且 SSH 協(xié)議還包括一種機制,該機制通過使用標準哈希算法(例如 SHA)來確保傳輸數(shù)據(jù)的完整性。
SSH 除了提供強大的加密功能外,網(wǎng)絡(luò)管理員還廣泛使用 SSH 遠程管理系統(tǒng)和應(yīng)用程序,交付軟件補丁或執(zhí)行命令并移動文件。
SSH 協(xié)議如何工作
任何 Linux 或 macOS 用戶都可以直接從終端窗口通過 SSH 進入其他遠程服務(wù)器。而 Windows 用戶可以利用 Xshell、Putty 之類的 SSH 客戶端。進入之后就可以與直接操作遠程計算機相同的方式執(zhí)行 Shell 命令。
SSH 默認在 TCP 端口 22 上運行(可以根據(jù)需求修改)。服務(wù)器在 22 端口上監(jiān)聽傳入的連接。如果驗證成功,它將對客戶端進行身份驗證并打開正確的通道來進行安全連接??蛻舳吮仨毻ㄟ^與服務(wù)器啟動 TCP 握手,確保安全的對稱連接,驗證服務(wù)器顯示的身份是否與以前的記錄(通常記錄在 RSA 密鑰存儲文件中)匹配,并提供所需的用戶憑據(jù)來開始 SSH 連接。
服務(wù)器(主機)身份驗證
SSH 協(xié)議內(nèi)置于 Unix 和 Linux 服務(wù)器中,以實現(xiàn)系統(tǒng)之間的安全連接。該連接由請求連接到 SSH 服務(wù)器的客戶端建立。SSH 客戶端啟動連接建立過程,并使用公共密鑰加密技術(shù)來驗證 SSH 服務(wù)器的身份。在設(shè)置階段之后,SSH 協(xié)議使用強大的對稱加密和哈希算法來確保客戶端和服務(wù)器之間交換數(shù)據(jù)的私密性和完整性。
下圖是根據(jù) NIST IR 7966 改編而成的,它簡化了 SSH 連接的流程:
-
客戶端啟動與 SSH 服務(wù)器的連接
-
服務(wù)器將其公鑰發(fā)送給客戶端
-
服務(wù)器的公鑰保存在客戶端的已知主機文件中
-
客戶端與服務(wù)器協(xié)商連接參數(shù)并建立連接
客戶端(用戶)身份驗證
SSH 協(xié)議使用傳統(tǒng)密碼或公共密鑰來啟用客戶端身份驗證。但是,鑒于使用密碼的風(fēng)險和效率低下,公鑰身份驗證被更廣泛地使用。SSH 密鑰不僅比密碼更強大,而且系統(tǒng)管理員還可以繞過基于密碼的手動登錄。
用戶如何使用 SSH 密鑰進行身份驗證呢?它們可以使用 ssh-keygen 命令與 SSH 客戶端(例如 OpenSSH)生成一個公私鑰對。創(chuàng)建后,用戶將其授權(quán)密鑰(公共密鑰)放入需要連接的服務(wù)器上的 authorized_keys 文件中。
當用戶使用基于密鑰的身份驗證遠程登錄時,OpenSSH 服務(wù)器將查找授權(quán)密鑰,然后用戶使用其對應(yīng)的私鑰向服務(wù)器進行身份驗證。由于不需要手動身份驗證,因此通常使用基于密鑰的身份驗證用于 IT 流程的自動化,例如安全的文件傳輸,備份和復(fù)制流程或配置管理工具(例如 Ansible,Terraform,Chef 或 Puppet) 。
SSH 協(xié)議的常見用例
SSH 連接主要用于保護本地計算機和遠程主機之間不同類型的通信,包括:
-
安全遠程訪問資源
-
遠程執(zhí)行命令
-
交付軟件補丁和更新
-
交互式和自動文件傳輸
除了在本地計算機和遠程計算機之間創(chuàng)建安全通道外,SSH 協(xié)議還用于管理重要的公司基礎(chǔ)結(jié)構(gòu),例如路由器,服務(wù)器硬件,虛擬化平臺和操作系統(tǒng)等。
SSH 密鑰用于自動訪問服務(wù)器,通常用于腳本,備份系統(tǒng)和配置管理工具中。由于其設(shè)計允許跨組織邊界的連接,并且 SSH 密鑰提供了單點登錄(SSO)功能,使用戶無需每次輸入密碼即可在各個帳戶之間移動。
最后,插播段小廣告:又拍云的“一鍵登錄”功能,和 SSH 密鑰登錄類似,用戶僅需要允許服務(wù)商應(yīng)用獲取本機手機號碼,并通過運營商網(wǎng)絡(luò)上傳,即可完成用戶身份校驗。不需要頻繁的輸入密碼和手機驗證碼,很大程度上降低了注冊、登錄環(huán)節(jié)的用戶流失。
總結(jié)
以上是生活随笔為你收集整理的服务器标配 SSH 协议,你了解多少?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 白话科普系列——网站靠什么提升加载速度?
- 下一篇: 云原生网络代理(MOSN)的进化之路