すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:パスワードの代わりに公開キーを使用してconfig_ecs_instance_connectプラグインを使用してLinuxインスタンスに接続する

最終更新日:Aug 21, 2024

このトピックでは、config_ecs_instance_connectプラグインを使用してLinux Elastic Compute Service (ECS) インスタンスに公開鍵を登録し、パスワードではなくキーを使用してインスタンスに接続する方法について説明します。

使用上の注意

config_ecs_instance_connectは、Linuxインスタンスへの接続に使用されるAlibaba Cloudプラグインです。 このプラグインを使用すると、パスワードなしで安全で簡単な方法で特定のLinuxインスタンスに接続できます。

  • config_ecs_instance_connectプラグインと共通のCloud Assistantコマンドを使用して、特定のユーザーが使用する特定のインスタンスにSSH公開鍵を送信できます。 パブリックキーは60秒間有効です。 この60秒間、パスワードを入力せずにSSH公開鍵を使用して、ユーザーとしてインスタンスに接続できます。 このようにして、パスワード漏洩などのリスクが防止される。

  • この接続方法は、次のシナリオに適しています。

    • 複数のインスタンスに頻繁に接続します。

    • 機密データを含むインスタンスに接続します。

前提条件

手順

  1. Session Manager Clientで次のコマンドを実行して、Rivest-Shamir-Adleman (RSA) 公開鍵および鍵ファイルを生成します。

    ssh-keygen -t rsa

    プロンプトに従ってEnterキーを押します。 次のコマンド出力は、公開鍵と鍵ファイルが生成されたことを示します。生成公钥

    説明

    生成される公開キーのデフォルトパスは ~/.ssh/id_rsa.pubです。

  2. config_ecs_instance_connectプラグインをインストールして起動します。

    ECSコンソールでプラグインをインストールして起動する

    インスタンスにconfig_ecs_instance_connectプラグインをインストールして起動するには、Cloud Assistantを使用してインスタンスで次のコマンドを実行します。

    Cloud Assistantを使用してインスタンスでコマンドを実行する方法については、「即時実行機能の使用」をご参照ください。

    acs-plugin-manager -e -P config_ecs_instance_connect --params --install

    Alibaba Cloud CLIを使用してプラグインをインストールして起動する

    説明

    この例では、インスタンスIDとしてi-bp15vhvt43ciprqkxxxxが使用されます。 実際の値に置き換えます。

    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. 公開鍵を接続先のインスタンスに送信します。

    API操作を呼び出してインスタンスに公開鍵を送信する

    InvokeCommand操作を呼び出して、ACS-ECS-SendSshPublicKey-linux.sh共通コマンドを実行し、SSH公開鍵をインスタンスに送信します。

    次のパラメータに注意してください。

    • CommandId: コマンドのID。 値をACS-ECS-SendSshPublicKey-linux.shに設定します。

    • パラメータ:

      • username: インスタンスへの接続に使用するユーザー名。 デフォルト値:root。

      • sshpublickey: SSH公開鍵。 This parameter is required. ステップ1で生成したid_rsa.pubファイルの内容を設定します。

    ECSコンソールでインスタンスに公開鍵を送信する

    1. ECS コンソールにログインします。

    2. 左側のナビゲーションウィンドウで、[メンテナンス & モニター] > [クラウドアシスタント] を選択します。

    3. [共通コマンド] タブをクリックします。

    4. 検索ボックスにACS-ECS-SendSshPublicKey-linux.shを入力し、Enterキーを押します。

    5. ACS-ECS-SendSshPublicKey-linux.sh共通コマンドが表示されます。 [操作] 列で、[実行] をクリックします。

    6. [コマンドの実行] パネルで、パラメーターを設定します。

      • 次のパラメータに注意してください。

        • username: インスタンスへの接続に使用するユーザー名。 デフォルト値:root。

        • sshPublicKey: SSH公開キー。 This parameter is required. ステップ1で生成したid_rsa.pubファイルの内容を設定します。

      • [インスタンスの選択]: 接続するインスタンスを選択します。

        执行命令

    7. [実行] をクリックします。

    Alibaba Cloud CLIを使用してインスタンスに公開鍵を送信する

    ACS-ECS-SendSshPublicKey-linux.sh commonコマンドを実行して、パブリックキーをインスタンスに送信します。

    次のパラメータに注意してください。

    • CommandId: コマンドのID。 値をACS-ECS-SendSshPublicKey-linux.shに設定します。

    • パラメータ:

      • username: インスタンスへの接続に使用するユーザー名。 デフォルト値:root。 値を使用するユーザー名に設定します。

      • sshpublickey: SSH公開鍵。 This parameter is required. ステップ1で生成したid_rsa.pubファイルの内容を設定します。

    リクエストの例

    aliyun ecs InvokeCommand -- RegionId 'cn-hangzhou' \
     -- CommandId 'ACS-ECS-SendSshPublicKey-linux.sh '\
     -- InstanceId.1 'i-bp15vhvt43ciprqkxxxx' \
     -- パラメータ '{"username":"ecs-user","sshpublickey":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5A0cE4tq7oq6q0NyEp/EuVNY9AGVVC1Kkp9MM2O0P + hXjghPVLk2j8rNue6IPwAcLPKwgwOMbcNKGu6U90Kt8XPE5fOyp1dakqXiG1hZFrNjfqkR7xpceV/N4tQvb5/8DCq98u8 5qouj/KGIvZ6 + BIQKBBh96iy/iHNLVNIS0H7UmBhYM4q9jjnxa + qy1JRCvV5Cc5mRgr87LfXbx + zmNiibFF23R9B9zeY1cS7RKRvzkpUWAN46f0gwY6Lg /RDcD7LbF0Kjz9oHp807pNinO94fvhWe5qZDH4VT **** test @ il7ckqcca ***} 

  4. パスワードを入力せずにインスタンスに接続します。

    インスタンスのパブリックIPアドレスまたはIDを使用して、パスワードを入力せずにインスタンスに接続できます。

    説明

    次のコマンドで、~/.ssh/id_rsaを秘密鍵の実際のパスに、usernameをインスタンスへの接続に使用するユーザー名に、instance_ipをインスタンスのパブリックIPアドレスに置き換えます。

    • インスタンスのパブリックIPアドレスを使用して、パスワードを入力せずにインスタンスに接続します。

      ssh -i ~/.ssh/id_rsa username@instance_ip 
    • インスタンスのIDを使用して、パスワードを入力せずにインスタンスに接続します。

      ssh -i ~/.ssh/id_rsa username@instance_id 

よくある質問

パスワードフリーモードでインスタンスに接続しようとすると、パスワードの入力が求められるのはなぜですか。

パブリックキーがインスタンスに登録された後、キーはインスタンスで60秒間のみ有効になります。 公開鍵の有効期限が切れているかどうかを確認します。

Cloud Assistantを使用するか、共通コマンドを実行してconfig_ecs_instance_connectプラグインをインストールすると、エラーが報告されます。 問題の原因を特定するにはどうすればよいですか?

ログを表示して、問題の原因を特定できます。

  • 次のパスでCloud Assistant Agentのログを表示します。

    /usr/local/share/aliyun-assist/<Version number of Cloud Assistant>/log/aliyun_assist_main.log.*
  • 次のパスでCloud Assistantプラグインのログを表示します。

    /usr/local/share/aliyun-assist/<Version number of Cloud Assistant>/log/acs_plugin_manager.log

関連ドキュメント