本文介紹如何通過config_ecs_instance_connect外掛程式註冊公開金鑰免密串連Linux執行個體。
功能介紹
config_ecs_instance_connect是阿里雲提供的用於串連Linux執行個體的外掛程式。使用該外掛程式,使用者可以無需密碼、安全、快速地串連指定的Linux執行個體,提高串連效率和安全性。
技術原理:該方式是基於config_ecs_instance_connect外掛程式和雲助手公用命令,將SSH公開金鑰發送到指定執行個體內部,供指定使用者使用。密鑰有效期間為60s。在此期間,您可以通過SSH公開金鑰串連執行個體,無需輸入密碼,避免密碼泄露等風險。
適用情境
需要頻繁串連多個執行個體。
需要遠程操作較為敏感的執行個體。
前提條件
目標執行個體處於運行中狀態。
目標執行個體所在帳號已開通會話管理功能。具體操作,請參見通過會話管理串連執行個體。
目標執行個體必須為Linux系統,並且已安裝雲助手Agent,並且Agent版本不低於2.2.3.196。
關於如何查詢雲助手Agent版本及升級雲助手Agent,請參見安裝雲助手Agent和升級或禁止升級雲助手Agent。
會話管理用戶端已安裝ali-instance-cli。具體操作,請參見Linux、macOS作業系統或Windows作業系統。
操作步驟
在會話管理用戶端,執行如下命令,產生RSA類型的公開金鑰與密鑰檔案。
ssh-keygen -t rsa
根據介面提示,按
Enter
鍵,當介面顯示如下所示時,說明公開金鑰與密鑰檔案已產生。說明產生的公開金鑰路徑預設為
~/.ssh/id_rsa.pub
。安裝並啟用config_ecs_instance_connect。
控制台方式
使用雲助手發送如下命令到目標執行個體,安裝並啟用config_ecs_instance_connect。
具體操作,請參見建立並執行命令。
acs-plugin-manager -e -P config_ecs_instance_connect --params --install
CLI方式
說明以下樣本中的i-bp15vhvt43ciprqkxxxx請替換成實際的執行個體ID。
aliyun ecs RunCommand --RegionId 'cn-hangzhou' \ --Type 'RunShellScript' \ --CommandContent 'acs-plugin-manager -e -P config_ecs_instance_connect --params --install' \ --InstanceId.1 'i-bp15vhvt43ciprqkxxxx'
發送SSH公開金鑰到目標執行個體。
OpenAPI方式
調用InvokeCommand,執行名稱為
ACS-ECS-SendSshPublicKey-linux.sh
的公用命令,將SSH公開金鑰發送到目標執行個體。您需要注意以下三個參數:
CommandId:命令ID,取值為
ACS-ECS-SendSshPublicKey-linux.sh
。Parameters:
username:遠程登入目標執行個體的使用者名稱,預設為root。
sshpublickey:遠程登入目標執行個體使用的SSH公開金鑰,必填參數,參數的值為步驟1中產生的id_rsa.pub的內容。
控制台方式
CLI方式
執行名稱為
ACS-ECS-SendSshPublicKey-linux.sh
的公用命令,將公開金鑰發送到目標執行個體。您需要注意以下三個參數:
CommandId:命令ID,取值為
ACS-ECS-SendSshPublicKey-linux.sh
。Parameters:
username:遠程登入目標執行個體的使用者名稱,預設為root,請替換成實際的使用者名稱。
sshpublickey:遠程登入目標執行個體使用的SSH公開金鑰,必填參數,參數的值為步驟1中產生的id_rsa.pub的內容。
CLI樣本如下:
aliyun ecs InvokeCommand --RegionId 'cn-hangzhou' \ --CommandId 'ACS-ECS-SendSshPublicKey-linux.sh' \ --InstanceId.1 'i-bp15vhvt43ciprqkxxxx' \ --Parameters '{"username":"ecs-user","sshpublickey":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5A0cE4tq7oq6q0NyEp/EuVNY9AGVVC1Kkp9MM2O0P+hXjghPVLk2j8rNue6IPwAcLPKwgwOMbcNKGu6U90Kt8XPE5fOyp1dakqXiG1hZFrNjfqkR7xpceV/N4tQvb5/8DCq98u85qouj/KGIvZ6+BIQKBBh96iy/iHNLVNIS0H7UmBhYM4q9jjnxa+qy1JRCvV5Cc5mRgr87LfXbx+zmNiibFF23R9B9zeY1cS7RKRvzkpUWAN46f0gwY6Lg++wtg6DPWOKQ98P9is5rFpbYLv0xkV9h9vHH95RNNxOf0/RDcD7LbF0Kjz9oHp807pNinO94fvhWe5qZDH4VT**** test@iZnl7ckqcca****"}'
免密登入目標執行個體。
支援以下兩種方式登入目標執行個體。
說明以下命令中
~/.ssh/id_rsa
請替換成您的實際私密金鑰路徑,username請替換成您遠程登入目標執行個體的使用者名稱,instance_ip請替換成您遠程登入的目標執行個體IP。通過公網IP免密登入目標執行個體。
ssh -i ~/.ssh/id_rsa username@instance_ip
通過instance_id免密登入目標執行個體。
ssh -i ~/.ssh/id_rsa username@instance_id
常見問題
為什麼免密登入時提示輸入密碼?
公開金鑰註冊完成之後,有效期間為60s,請確認您的公開金鑰是否已經到期。
通過雲助手安裝config_ecs_instance_connect,或者通過公用命令報錯時候,如何查看具體問題?
您可以通過查看日誌分析具體問題。
雲助手Agent日誌路徑:
/usr/local/share/aliyun-assist/雲助手版本號碼/log/aliyun_assist_main.log.*
雲助手外掛程式模組日誌路徑:
/usr/local/share/aliyun-assist/雲助手版本號碼/log/acs_plugin_manager.log