伺服器標配 SSH 協議,你了解多少?

2022-02-04 04:50:01 字數 2516 閱讀 5110

年初,新冠肺炎疫情的出現,全國數千萬名員工在家遠端辦公,使用個人裝置通過家庭網路訪問公司資料。因此,it 安全團隊面臨了眾多新挑戰:如何實施更加安全的身份驗證方案,以確保只有授權人員和裝置才能訪問公司敏感資產?

不少小夥伴想起了 ssh,其實大家對它都比較熟悉。大到虛擬機器、伺服器,小到手機、家電,linux 裝置普及越來越廣,ssh 的運用也越來越廣泛。不僅攻城獅、程式猿離不開它,普通使用者也基本都在使用。ssh 可以說是各伺服器的標配,有了 ssh,我們不必每次都要蹲到機房裡連線伺服器配置伺服器,直接遠端就可以操作,同樣,有了 ssh,也能解決遠端辦公的一些安全性問題。

下面我們就來詳細了解一下 ssh 的傳奇故事。

ssh(secure shell)是一種加密的網路傳輸協議,它允許使用者通過 internet 控制和修改遠端伺服器。該協議的出現替代了未加密的登入協議(例如 telnet/rlogin)和不安全的檔案傳輸方法(例如 ftp),並使用了加密技術來確保與遠端伺服器之間的所有通訊都以加密的方式進行。它提供了一種機制,用於驗證遠端使用者,將輸入從客戶端傳輸到伺服器,以及將輸出中繼回客戶端。

ssh 提供了強大的加密和完整性保護。在客戶端和伺服器之間建立連線後,ssh 將根據設定中協商的引數對傳輸的資料進行加密。在協商過程中,客戶端和伺服器根據使用的對稱加密演算法達成一致,並生成將要使用的加密金鑰。通訊雙方之間的通訊受到行業標準的強加密演算法(例如 aes(高階加密標準))的保護,並且 ssh 協議還包括一種機制,該機制通過使用標準雜湊演算法(例如 sha)來確保傳輸資料的完整性。

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-keygen 命令與 ssh 客戶端(例如 openssh)生成乙個公私鑰對。建立後,使用者將其授權金鑰(公共金鑰)放入需要連線的伺服器上的 authorized_keys 檔案中。

當使用者使用基於金鑰的身份驗證遠端登入時,openssh 伺服器將查詢授權金鑰,然後使用者使用其對應的私鑰向伺服器進行身份驗證。由於不需要手動身份驗證,因此通常使用基於金鑰的身份驗證用於 it 流程的自動化,例如安全的檔案傳輸,備份和複製流程或配置管理工具(例如 ansible,terraform,chef 或 puppet) 。

ssh 連線主要用於保護本地計算機和遠端主機之間不同型別的通訊,包括:

除了在本地計算機和遠端計算機之間建立安全通道外,ssh 協議還用於管理重要的公司基礎結構,例如路由器,伺服器硬體,虛擬化平台和作業系統等。

ssh 金鑰用於自動訪問伺服器,通常用於指令碼,備份系統和配置管理工具中。由於其設計允許跨組織邊界的連線,並且 ssh 金鑰提供了單點登入(sso)功能,使使用者無需每次輸入密碼即可在各個帳戶之間移動。

最後,插播段小廣告:又拍雲的「一鍵登入」功能,和 ssh 金鑰登入類似,使用者僅需要允許服務商應用獲取本機手機號碼,並通過運營商網路上傳,即可完成使用者身份校驗。不需要頻繁的輸入密碼和手機驗證碼,很大程度上降低了註冊、登入環節的使用者流失。

推薦閱讀

技術選型:為什麼批處理我們卻選擇了flink

有讚統一接入層架構演進

TCP IP協議,你了解多少?(一)

一 傳輸層的主要功能是什麼?分割並重新組裝上層提供的資料流,為資料流提供端到端的傳輸服務。二 傳輸層如何區分不同應用程式的資料流?因為,對應傳輸層而言,它只需要知道目標主機上的哪個服務程式來響應這個程式,而不需要知道這個服務程式是幹什麼的。因此,我們只需要能夠抽象的表示出來這些應用程式和服務程式即可...

SSH協議伺服器(支援讀寫操作)

建立基於密碼驗證的ssh協議伺服器 root git server git init bare var lib git base ssh 初始化空的 git 版本庫於 var lib git base ssh 客戶端訪問的方式 root client git clone root 192.168.2...

伺服器虛擬化 標配還是搭配

伺服器虛擬化技術已經受到業界的肯定,比如根據vmware公司的資料,其2007年的全年收入達到了13億美元,其2008年第一季度的業界也獲得了長足的增長。此外,不僅有多家廠商推出了相關的虛擬化技術,也有多家伺服器廠商開始在其伺服器中內建伺服器虛擬化技術。內建伺服器虛擬化風行 繼此前dell ibm ...