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