全部產品
Search
文件中心

Elastic Compute Service:通過config_ecs_instance_connect外掛程式註冊公開金鑰免密串連Linux執行個體

更新時間:Aug 21, 2024

本文介紹如何通過config_ecs_instance_connect外掛程式註冊公開金鑰免密串連Linux執行個體。

功能介紹

config_ecs_instance_connect是阿里雲提供的用於串連Linux執行個體的外掛程式。使用該外掛程式,使用者可以無需密碼、安全、快速地串連指定的Linux執行個體,提高串連效率和安全性。

  • 技術原理:該方式是基於config_ecs_instance_connect外掛程式和雲助手公用命令,將SSH公開金鑰發送到指定執行個體內部,供指定使用者使用。密鑰有效期間為60s。在此期間,您可以通過SSH公開金鑰串連執行個體,無需輸入密碼,避免密碼泄露等風險。

  • 適用情境

    • 需要頻繁串連多個執行個體。

    • 需要遠程操作較為敏感的執行個體。

前提條件

操作步驟

  1. 在會話管理用戶端,執行如下命令,產生RSA類型的公開金鑰與密鑰檔案。

    ssh-keygen -t rsa

    根據介面提示,按Enter鍵,當介面顯示如下所示時,說明公開金鑰與密鑰檔案已產生。產生公開金鑰

    說明

    產生的公開金鑰路徑預設為~/.ssh/id_rsa.pub

  2. 安裝並啟用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'    
  3. 發送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的內容。

    控制台方式

    1. 登入ECS管理主控台

    2. 在左側導覽列,選擇營運與監控 > 雲助手

    3. 單擊公用命令頁簽。

    4. 在搜尋方塊中輸入ACS-ECS-SendSshPublicKey-linux.sh,單擊Enter鍵。

    5. 在ACS-ECS-SendSshPublicKey-linux.sh公用命令對應的操作列,單擊執行

    6. 在彈出的執行命令面板,配置參數。

      • 命令參數:

        • username:遠程登入目標執行個體的使用者名稱,預設為root。

        • sshpublickey:遠程登入目標執行個體使用的SSH公開金鑰,必填參數,參數的值為步驟1中產生的id_rsa.pub的內容。

      • 選擇執行個體:選中要串連的目標執行個體。

        執行命令

    7. 單擊執行

    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****"}' 

  4. 免密登入目標執行個體。

    支援以下兩種方式登入目標執行個體。

    說明

    以下命令中~/.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

相關文檔