在通過SSH遠端連線Linux執行個體時,您可以通過金鑰組認證身份,在不輸入密碼的情況下進行身分識別驗證,實現免密登入。
SSH金鑰組概述
什麼是SSH金鑰組
SSH金鑰組是通過SSH串連執行個體的一種憑證。一對SSH金鑰組由公開金鑰和私密金鑰兩部分組成,公開金鑰可以公開,儲存在執行個體內,私密金鑰需保密並由您自行保管。金鑰組必須成對使用,公開金鑰負責加密資料,私密金鑰負責解密資料,由公開金鑰加密的資料僅能通過私密金鑰解密。
使用SSH金鑰組認證的優勢
安全可靠
SSH金鑰組安全強度遠高於常規使用者密碼,且從公開金鑰逆向推出私密金鑰的難度極高,可以杜絕暴力破解威脅。
便捷
通過使用SSH金鑰組,可以實現免密登入,直接使用私密金鑰通過SSH命令或相關工具登入目標執行個體。
支援登入多台Linux執行個體,更加方便地管理您的執行個體。如果您需要批量維護多台Linux執行個體,推薦使用這種方式登入。
SSH金鑰組如何工作
簡化後的SSH金鑰組認證流程如圖所示。在用戶端發起登入請求後,服務端會通過公開金鑰加密一個隨機字串,用戶端通過私密金鑰解密該字串返回給服務端,通過對比兩個字串是否一致來認證身份。
管理金鑰組
進入金鑰組管理頁(查看所有金鑰組)
通過控制台
如圖所示,金鑰組的管理操作集中在金鑰組的管理頁面,您可以通過以下步驟進入金鑰組的管理頁。在該頁面,你可以看到當前地區下所有的金鑰組的資訊並對金鑰組進行管理操作。
登入ECS管理主控台。
在左側導覽列,選擇 。
在頁面左側頂部,選擇目標資源所在的資源群組和地區。
相關API
您可以調用
DescribeKeyPairs
介面查詢指定地區下所有的金鑰組,相關API說明,請參見DescribeKeyPairs - 查詢一個或多個金鑰組。
建立金鑰組
在控制台建立金鑰組
重要建立金鑰組後,系統將自動下載私密金鑰,請您妥善保管。阿里雲僅會儲存您的公開金鑰,不會儲存您的私密金鑰。使用金鑰組綁定ECS執行個體後,如果沒有私密金鑰,您將無法登入該ECS執行個體。
您在一個地區最多可以擁有500個金鑰組。
您可以在阿里雲控制台,自動建立金鑰組,具體操作步驟如下。
在金鑰組管理頁,單擊建立金鑰組。
在建立金鑰組對話方塊中,完成配置,配置項說明如下。
完成配置後,單擊確定。
金鑰組建立成功後,瀏覽器自動下載私密金鑰檔案(金鑰組名稱.pem)到本地電腦。
相關API
您可以調用
CreateKeyPair
介面建立金鑰組,相關API說明,請參見CreateKeyPair - 建立一對SSH金鑰組。
查看公開金鑰資訊
如果您需要查看建立公開金鑰的資訊,您可以參考以下方式,通過私密金鑰擷取公開金鑰。
本地為Linux或Mac系統
運行ssh-keygen
命令,並指定.pem
檔案的路徑。
/path_to_key_pair/my-key-pair.pem為您私密金鑰檔案的路徑
ssh-keygen -y -f /path_to_key_pair/my-key-pair.pem
返回公開金鑰資訊,類似如下所示:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABA****+GF9q7rhc6vYrExwT4WU4fsaRcVXGV2Mg9RHex21hl1au77GkmnIgukBZjywlQOT4GDdsJy2nBOdJPrCEBIPxxxxxxxxxx/fctNuKjcmMMOA8YUT+sJKn3l7rCLkesE+S5880yNdRjBiiUy40kyr7Y+fqGVdSOHGMXZQPpkBtojcxxxxxxxxxxx/htEqGa/Jq4fH7bR6CYQ2XgH/hCap29Mdi/G5Tx1nbUKuIHdMWOPvjxxxxxxxxxx+lHtTGiAIRG1riyNRVC47ZEVCxxxxxx
如果該命令失敗,請運行chmod 400 my-key-pair.pem
命令更改許可權,確保只有您能查看該檔案。
本地為Windows作業系統
完成以下操作,查看公開金鑰資訊:
啟動PuTTYgen。
單擊Load。
選擇
.ppk
或.pem
檔案。PuTTYgen會顯示公開金鑰資訊。
在已綁定金鑰組的執行個體查看
遠端連線Linux執行個體。
具體操作,請參見通過SSH的方式登入Linux執行個體(支援私網)。
執行以下命令,查看SSH金鑰組的公開金鑰資訊。
sudo cat ~/.ssh/authorized_keys
說明公開金鑰內容放在
~/.ssh/authorized_keys
檔案內。在執行個體內開啟該檔案,會返回公開金鑰資訊。
匯入金鑰組(公開金鑰)
待匯入金鑰組支援的加密方式
匯入阿里雲的公開金鑰必須使用
Base64
編碼,且必須支援下列加密方式中的一種:rsa
dsa
ssh-rsa
ssh-dss
ecdsa
ssh-rsa-cert-v00@openssh.com
ssh-dss-cert-v00@openssh.com
ssh-rsa-cert-v01@openssh.com
ssh-dss-cert-v01@openssh.com
ecdsa-sha2-nistp256-cert-v01@openssh.com
ecdsa-sha2-nistp384-cert-v01@openssh.com
ecdsa-sha2-nistp521-cert-v01@openssh.com
在控制台匯入金鑰組
您可以在阿里雲控制台,自動建立金鑰組,具體操作步驟如下。
相關API
您可以調用
ImportKeyPair
介面,匯入已有金鑰組(公開金鑰),相關API說明,請參見ImportKeyPair - 匯入RSA金鑰組公開金鑰。
綁定金鑰組
您可以在建立執行個體時指定SSH金鑰組,也可以在建立執行個體後綁定SSH金鑰組,以滿足您安全地進行遠程伺服器訪問、多使用者訪問管理以及自動化和大量操作等需求。
注意事項
只能為初始使用者綁定:在為ECS執行個體綁定金鑰組時,僅支援綁定執行個體的初始登入使用者的金鑰組,執行個體初始登入使用者是您在建立執行個體時選擇的登入使用者,如需為其他使用者綁定金鑰組,請參見手動綁定金鑰組實現SSH免密登入。
綁定後需重啟執行個體:通過該方式綁定金鑰組後,需要重啟ECS執行個體才會生效,如果重啟執行個體會對您現有執行個體造成影響,可以手動綁定金鑰組,具體操作,請參見手動綁定金鑰組實現SSH免密登入。
在控制台操作時,一台ECS執行個體只能綁定一個SSH金鑰組,但是同一個金鑰組可用於多台ECS執行個體。如果ECS執行個體已經綁定了SSH金鑰組,綁定新金鑰組後,新密鑰會自動替換原有的密鑰。
會切換登入方式,如果ECS執行個體原先使用密碼認證,綁定金鑰組後,會關閉SSH的密碼登入功能。
在控制台綁定金鑰組
在阿里雲控制台為執行個體綁定金鑰組的方式如下。
在金鑰組管理頁,找到需要操作的金鑰組,在操作列中,單擊綁定金鑰組。
在選擇ECS執行個體欄中,選中需要綁定該金鑰組的ECS執行個體名稱,單擊>表徵圖,將其移入已選擇欄中。單擊下一步。
說明SSH金鑰組僅支援Linux執行個體,如果是Windows執行個體,此處無法選中。
根據介面提示,選擇重啟執行個體的方式,或者等待合適的時機重啟執行個體,重啟執行個體後,新的金鑰組可以生效。
相關API
您可以調用
AttachKeyPair
介面,為Linux執行個體綁定金鑰組,相關API說明,請參見AttachKeyPair - 綁定SSH金鑰組到Linux執行個體。
解除綁定金鑰組
如果您不再需要已綁定的金鑰組,例如使用了多個到期或不再需要的SSH金鑰組、定期進行密鑰輪換或某個使用者不再需要訪問特定執行個體,您可以解除綁定SSH金鑰組,以提高執行個體的安全性或限制存取權限。
通過該方式解除綁定金鑰組後,需要重啟ECS執行個體,如果不能接受重啟執行個體,請手動解除綁定金鑰組,具體操作,請參見手動綁定金鑰組實現SSH免密登入。
控制台操作
在阿里雲控制台為執行個體綁定金鑰組的方式如下。
在金鑰組管理頁,找到需要操作的金鑰組,在操作列中,單擊解除綁定金鑰組。
在選擇ECS執行個體欄中,選中需要解除綁定該金鑰組的ECS執行個體名稱,單擊>表徵圖,將其移入已選擇欄中。單擊下一步。
根據介面提示,選擇重啟執行個體的方式,或者等待合適的時機重啟執行個體,重啟執行個體後金鑰組與執行個體解除綁定。
相關API
您可以調用
DetachKeyPair
介面,為Linux執行個體解除綁定金鑰組,相關API說明,請參見DetachKeyPair - 為Linux執行個體解除綁定 SSH 金鑰對。
刪除金鑰組
當待刪除的金鑰組存在已綁定的執行個體時,不支援刪除操作。
控制台
在阿里雲控制台刪除金鑰組的步驟如下。
在金鑰組管理頁,找到需要操作的金鑰組,在操作列中,單擊刪除。
根據介面提示完成刪除操作。
相關API
您可以調用
DeleteKeyPairs
介面,刪除金鑰組,相關API說明,請參見DeleteKeyPairs - 刪除一對或者多對SSH金鑰組。