在客戶端/服務器應用程序中使用 SSH
SSH 是客戶端/服務器應用程序中使用的協議。服務器運行 SSH 服務器或守護進程,SSH 客戶端默認安裝在大多數 UNIX 和 Mac 系統以及最新版本的 Windows 上。還有其他免費和商業版本可提供附加功能,例如單獨配置和保存頻繁連接。PuTTY 是一種流行的免費 SSH 客戶端,而 VanDyke Software 的 SecureCRT 是一種流行的商業客戶端。
您可以將 SSH 用于需要與另一臺設備建立安全遠程連接的多項活動,例如:
- 客戶端和服務器之間的安全文件復制
- 通過安全隧道重定向網絡協議
- 用于遠程管理的交互式命令行實用程序
使用 SSH 安全地復制文件
您可以使用安全復制協議 (SCP) 或安全文件傳輸協議 (SFTP) 通過 SSH 復制文件。兩者都通過 TCP 22 復制文件,但使用不同的協議。SSH 處理身份驗證和加密。SFTP 是 SSH 協議的擴展,需要在服務器端增加一個 SFTP 服務器。SFTP 包括更強大的命令集,如列出遠程目錄和刪除文件,這是 SCP 無法做到的。
通過 SSH 隧道重定向網絡流量以實現安全遠程管理
SSH 還支持多種其他功能,例如通過已建立的 SSH 隧道封裝其他網絡流量的能力。例如,在創建 SSH 隧道后,您可以指示不同的應用程序(如 Web 瀏覽器)通過特定端口連接到本地主機。然后,系統會將后續網絡調用發送到目標服務器。這允許遠程連接到網絡而無需在 Internet 上公開該服務。
使用 SSH 的交互式命令滿足您的遠程管理安全需求
SSH 提供身份驗證和加密功能,使您能夠配置系統以滿足您的安全要求。默認情況下,SSH 配置為用于用戶名和密碼身份驗證,但您可以添加通過其他模塊(如 OATH-TOTP)提供的公鑰身份驗證和額外的多因素身份驗證 (MFA)。事實證明,多因素身份驗證比單獨使用密碼更能抵御網絡釣魚攻擊,因為 MFA 至少需要一個除密碼之外的其他因素來確認身份。
SSH 服務器配置可以在命令行、每個用戶或系統范圍內通過一個名為 的文件進行配置SSH_config
,該文件通常位于/etc/SSH/SSHd_config.
為用戶名和密碼身份驗證配置 SSH 是最簡單的。默認情況下,在許多設備上,您只需要在服務器上創建一個用戶帳戶,分配一個密碼,確保安裝并偵聽 SSH 服務器守護程序,然后就可以開始了。
在客戶端計算機上,使用以下命令遠程登錄到服務器:ssh username@remotehost
當您首次登錄新設備時,系統會向您顯示無法驗證您所連接的服務器或設備的真實性的警報。這是正常的,也是一種很好的安全措施。SSH 客戶端將向您顯示服務器提供的主機密鑰。為確保您連接的服務器是您打算連接的實際服務器(而不是欺騙或中間人),您應該確認其身份。在服務器上,使用此命令輸出服務器的身份公鑰:
ssh-keygen -l -f
例如:
ssh-keygen -l -f ssh_host_ecdsa_key.pub
然后,將此命令的輸出與 SSH 客戶端提供給您的散列值進行比較。你只需要這樣做一次。SSH 客戶端會將此條目保存在文件中您之前登錄的所有已知主機的列表中,~/.SSH/known_hosts
并且只會在檢測到不匹配時提醒您。
設置用于身份驗證的證書稍微復雜一些,但是許多 Internet 站點都詳細說明了所需的步驟。例如,https://ssh.com 上提供了一個非常好的演練。這些站點顯示了為不同的 Linux 發行版安裝和配置 SSH 和證書的細節。生成的密鑰是實際憑證,與用戶名和密碼一樣重要,應謹慎處理并妥善保護。這些證書將允許訪問您的設備。
一般來說,步驟包括:
-
通過運行命令生成包含授權密鑰和身份密鑰的密鑰對
ssh-keygen
。默認情況下,ssh-keygen
將創建一個新的身份(私有)和授權(公共)SSH 協議 2 RSA 密鑰對到~/.ssh directory
. 如果您在創建 SSH 密鑰時選擇輸入密碼,則在嘗試使用該密鑰登錄遠程計算機時將需要重新輸入該密碼。重新輸入密碼是一種很好的安全措施,因為密碼會加密您的私鑰并防止攻擊者使用它。
從客戶端計算機上的命令行運行:ssh-keygen
-
將授權密鑰從客戶端計算機復制到服務器。使用 ssh 默認值,此密鑰具有 .pub 擴展名,并且位于用戶的 .ssh 目錄中的身份密鑰旁邊。運行 ssh-keygen 生成 ssh 密鑰后,在客戶端計算機上運行此工具:
ssh-copy-id username@remotehost
此工具將在您的客戶端計算機上查找密鑰,并將登錄到您指定的遠程計算機并將密鑰復制到(新)文件中,位于~/.ssh/authorized_keys
。
這樣就以最簡單的形式完成了這個過程。現在,當您登錄該遠程設備時,它將使用您的證書對您進行身份驗證。
指定要使用的加密密碼
SSH 還允許您指定要使用的加密密碼。并不是所有的密碼都是平等的,有些你應該避免。大多數現代 Linux 發行版默認使用可接受的加密密碼,但舊設備可能不支持這些密碼。要限制降級以刪除不需要的密碼,請編輯文件sshd_config
并指定您希望支持的密碼。如果您的服務器或設備支持更高版本的 OpenSSH,您可以運行以下命令來調用擴展測試模式,這將列出許多配置選項,包括啟用了哪些加密算法:
sshd -T
有關要使用的最佳對稱算法、主機密鑰、密鑰交換和消息身份驗證代碼算法的當前指南,請參閱 OpenSSH 網站。美國國家標準與技術研究院 (NIST) 還提供了由于密鑰長度不足或算法本身而應避免使用哪些加密算法的建議。
關鍵點:
SSH 是一個非常強大和有用的工具,可以連接到無數的設備。允許交互式登錄的物聯網設備將支持 SSH,您應該警惕在不受信任的網絡上使用那些不支持的設備。
- SSH 標準包括支持對 IoT 設備和云基礎設施進行安全、遠程管理的工具。
- SSH 提供現代加密和身份驗證控制,包括使用受密碼保護的證書的多因素身份驗證。
- OpenSSH 實用程序套件提供了使用 SSH 遠程管理 Linux 系統和網絡設備所需的所有工具。
審核編輯:湯梓紅
-
服務器
+關注
關注
12文章
9017瀏覽量
85182 -
客戶端
+關注
關注
1文章
290瀏覽量
16661 -
SSH
+關注
關注
0文章
185瀏覽量
16299
發布評論請先 登錄
相關推薦
評論