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

Elastic Compute Service:Session Manager CLI を使用した一時的なキーペアによるインスタンスへの接続

最終更新日:May 16, 2026

ali-instance-cli を使用して 60 秒間有効な一時的な公開鍵を登録し、パスワードの代わりに秘密鍵を使用して Elastic Compute Service (ECS) インスタンスに接続します。

一時的な公開鍵

一時的な公開鍵を使用すると、インスタンスにキーペアを設定することなく、SSH 経由でインスタンスに接続できます。接続するたびに、60 秒間有効な一時的な公開鍵を登録し、パスワードの代わりに対応する秘密鍵を使用します。

説明

一時的な公開鍵はクラウドアシスタントサーバーに保存されます。

事前準備

セッションマネージャーサービスの有効化

ali-instance-cli を使用する前に、ご利用の Alibaba Cloud アカウントでセッションマネージャーサービスが有効になっていることを確認してください。セッションマネージャーはコンソールでのみ有効にできます。セッションマネージャーを有効にするには、次の手順を実行します。

  1. ECS コンソール - インスタンスに移動します。

  2. 上部のナビゲーションバーで、インスタンスのリージョンとリソースグループを選択します。

  3. インスタンス ページで、対象のインスタンスを見つけ、操作 列の 接続 をクリックします。

  4. 他のログイン方法を表示 をクリックします。セッションマネージャー を見つけます。セッション管理クローズ の横にあるスイッチをオンにします。その後、画面の指示に従ってサービスを有効にします。

    image

    image

インスタンスが実行中状態であるかの確認

セッションマネージャーを使用してインスタンスに接続できるのは、インスタンスが 実行中 状態の場合のみです。

コンソール

インスタンスのステータスは、ECS コンソールの [インスタンス] ページで確認できます。[実行中] 状態のインスタンスは、次の図のように表示されます。

インスタンスのステータスを確認する方法については、「インスタンス情報の表示」をご参照ください。

image

image

Alibaba Cloud CLI

Alibaba Cloud CLI を設定している場合は、次のコマンドを実行してインスタンスのステータスをクエリできます。API パラメーターの詳細については、「DescribeInstanceStatus」をご参照ください。

このトピックでは、中国 (杭州) リージョンのインスタンス ID i-bp1****** を例として使用します。
aliyun ecs DescribeInstanceStatus --region cn-hangzhou --RegionId 'cn-hangzhou' --InstanceId.1 'i-bp1******'

インスタンスの Status の値が Running の場合、インスタンスは実行中です。

{
  "TotalCount": 1,
  "RequestId": "A413****-****-****-****-****611B",
  "PageSize": 1,
  "PageNumber": 1,
  "InstanceStatuses": {
    "InstanceStatus": [
      {
        "Status": "Running",
        "InstanceId": "i-bp1******"
      }
    ]
  }
}

この API に加えて、他の API を使用してインスタンスのステータスをクエリすることもできます。詳細については、「DescribeInstances」をご参照ください。

API

API を使用してインスタンスのステータスをクエリするには、「DescribeInstanceStatus」または「DescribeInstances」をご参照ください。

クラウドアシスタントエージェントがインストールされているかの確認

セッションマネージャーはクラウドアシスタントに依存しています。次のいずれかの方法で、クラウドアシスタントエージェントがインスタンスにインストールされているかを確認できます。

2017 年 12 月 1 日以降に公式パブリックイメージから作成された ECS インスタンスには、デフォルトでクラウドアシスタントエージェントがインストールされています。インスタンスが 2017 年 12 月 1 日より前に作成された場合、またはアップロードしたカスタムイメージから作成された場合は、クラウドアシスタントエージェントを自分でインストールする必要があります。詳細については、「クラウドアシスタントエージェントのインストール」をご参照ください。

コンソール

セッションマネージャーはクラウドアシスタントに依存しており、インスタンスにクラウドアシスタントエージェントをインストールする必要があります。エージェントのステータスは、ECS コンソールのクラウドアシスタントセクションで確認できます。クラウドアシスタントエージェントがインストールされているインスタンスは、次の図のように表示されます。

2017 年 12 月 1 日以降にパブリックイメージから作成された ECS インスタンスには、デフォルトでクラウドアシスタントエージェントプリインストールされています。インスタンスがこの日付より前に作成された場合、またはカスタムイメージを使用している場合は、クラウドアシスタントエージェントを手動でインストールする必要があります。詳細については、「クラウドアシスタントエージェントのインストール」をご参照ください。

image

image

クラウドアシスタントエージェントのステータスの確認方法と異常の処理方法については、「ステータスの確認と異常の処理」をご参照ください。

Alibaba Cloud CLI

Alibaba Cloud CLI を設定している場合は、次のコマンドを実行して、クラウドアシスタントエージェントがインストールされているか、およびそのバージョンがセッションマネージャーをサポートしているかを確認できます。パラメーターの詳細については、「DescribeCloudAssistantStatus」をご参照ください。

このトピックでは、中国 (杭州) リージョンのインスタンス ID i-bp1****** を例として使用します。
aliyun ecs DescribeCloudAssistantStatus --region cn-hangzhou --RegionId 'cn-hangzhou' --InstanceId.1 'i-bp1******'

CloudAssistantStatus (クラウドアシスタントのステータス) の値が true で、SupportSessionManager (セッションマネージャーのサポートステータス) の値も true の場合、セッションマネージャーを使用してインスタンスに接続できます。

{
  "TotalCount": 1,
  "PageSize": 1,
  "RequestId": "DB34****-****-****-****-****A749",
  "NextToken": "",
  "PageNumber": 1,
  "InstanceCloudAssistantStatusSet": {
    "InstanceCloudAssistantStatus": [
      {
        "CloudAssistantVersion": "2.2.3.857",
        "SupportSessionManager": true,
        "InstanceId": "i-bp1******",
        "InvocationCount": 4,
        "OSType": "Linux",
        "CloudAssistantStatus": "true",
        "LastHeartbeatTime": "2024-12-10T02:38:04Z",
        "LastInvokedTime": "2024-12-08T16:02:45Z",
        "ActiveTaskCount": 0
      }
    ]
  }
}

API

API を使用してクラウドアシスタントエージェントのステータスをクエリするには、「DescribeCloudAssistantStatus」をご参照ください。

セッションマネージャー用の RAM ユーザーの認証情報の準備

ali-instance-cli を使用する場合、RAM ユーザーのAccessKey ペアSecurity Token Service (STS) トークンを指定する必要があります。セッションマネージャーを使用してインスタンスに接続すると、システムは、その認証情報を持つ RAM ユーザーが ecs:StartTerminalSession 権限を持っているかどうかを検証します。

カスタムポリシーを設定する際、Resource パラメーターを設定して、RAM ユーザーがセッションマネージャーを使用して接続できる ECS インスタンスを指定できます。ポリシーの例:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ecs:StartTerminalSession",
      "Resource": "*"
    }
  ]
}

CredentialsURI および STS トークン パラメーターの詳細については、「AccessKey の作成」および「STS とは」をご参照ください。

RAM ユーザーに権限を付与する方法については、「RAM ユーザーへの権限付与」をご参照ください。

1. セッションマネージャー CLI のインストールと設定

説明

すでにセッションマネージャー CLI をインストールして設定している場合は、このステップをスキップできます。

1.1 インストール

まず、セッションマネージャー CLI (ali-instance-cli) をローカルコンピューターにインストールします。インストール方法は、ご利用のオペレーティングシステムによって異なります。

Windows

Windows 用 ali-instance-cli をダウンロードするにはここをクリックし、ローカルフォルダーに保存します。

このトピックでは、C:\Users\test フォルダーを例として使用します。

macOS

macOS のターミナルで、次のコマンドを実行して macOS 用の ali-instance-cli をダウンロードします。

curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/mac/ali-instance-cli

ダウンロードが完了したら、次のコマンドを実行して ali-instance-cli に実行権限を付与します。

chmod a+x ali-instance-cli

Linux

次のコマンドを実行して、Linux 用の ali-instance-cli をインストールします。

x86 アーキテクチャ
curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/linux/ali-instance-cli
arm アーキテクチャ
curl -O https://aliyun-client-assist.oss-cn-beijing.aliyuncs.com/session-manager/linux_arm/ali-instance-cli

ダウンロードが完了したら、次のコマンドを実行して ali-instance-cli に実行権限を付与します。

chmod a+x ali-instance-cli

1.2 設定

ローカルコンピューターで ali-instance-cli を使用して Alibaba Cloud インスタンスに接続する場合、AccessKey などの ID 認証情報を設定する必要があります。詳細については、「セッションマネージャー用の RAM ユーザーの認証情報の準備」をご参照ください。

Windows

  1. 開始 > [ファイル名を指定して実行] をクリックし、cmd と入力して Enter キーを押し、コマンドプロンプトウィンドウを開きます。

  2. ali-instance-cli.exe があるディレクトリに切り替えます。このトピックでは、C:\Users\test を例として使用します。

    cd C:\Users\test
  3. 認証情報を設定します。次の 3 つの設定方法がサポートされています。

    AccessKey

    次のコマンドを実行し、プロンプトに従ってAccessKey IDAccessKey Secret、およびリージョン ID を設定します。

    ali-instance-cli.exe configure --mode AK
    STS トークン

    次のコマンドを実行して設定を完了します。

    ali-instance-cli.exe configure set --mode StsToken --region "<region>" --access-key-id "<ak>"  --access-key-secret "<sk>"   --sts-token "<sts_token>"

    <region><ak><sk>、および <sts_token> を、実際のリージョン IDAccessKey IDAccessKey Secret、および STS トークン に置き換えます。

    CredentialsURI

    次のコマンドを実行し、プロンプトに従ってCredentials URIリージョン ID を入力します。

    ali-instance-cli.exe configure --mode=CredentialsURI

    次の内容が返された場合、設定は完了です。

    image

macOS/Linux

  1. ali-instance-cli があるディレクトリに移動します。このトピックでは、現在のユーザーのルートディレクトリ ~ を例として使用します。

    cd ~
  2. 認証情報を設定します。

    AccessKey

    次のコマンドを実行し、プロンプトに従ってAccessKey IDAccessKey Secret、およびリージョン ID を設定します。

    ./ali-instance-cli configure --mode AK
    STS トークン

    次のコマンドを実行して設定を完了します。

    ./ali-instance-cli configure set --mode StsToken --region "<region>" --access-key-id "<ak>"  --access-key-secret "<sk>"   --sts-token "<sts_token>"

    <region><ak><sk>、および <sts_token> を、実際のリージョン IDAccessKey IDAccessKey Secret、および STS トークン に置き換えます。

    CredentialsURI

    次のコマンドを実行し、プロンプトに従ってCredentials URIリージョン ID を設定します。

    ./ali-instance-cli configure --mode=CredentialsURI

    次の内容が返された場合、設定は完了です。

    image

2. 一時的な公開鍵のインスタンスへの登録

2.1 インスタンス ID の取得

対象のインスタンスの ID を取得します。

2.2 キーペアの生成

お使いのコンピューターでキーペアを生成します。公開鍵ファイルは、ステップ 2.3 で一時的な公開鍵として使用されます。

Windows コンピューター

コマンドプロンプトを開き、次のコマンドを実行してキーペアを生成します。

この例では、OpenSSH クライアントを使用して C:\Users\test ディレクトリにキーペアを生成します。
ssh-keygen -t rsa -b 2048 -f id_rsa
  • -t rsa: Rivest-Shamir-Adleman (RSA) キータイプ。

  • -b 2048:キー長 (ビット単位)。

  • -f id_rsa:キーファイル名。

重要

パスフレーズの入力を求められます。設定した場合、秘密鍵を使用するたびにパスフレーズが必要になります。

パスフレーズが不要な場合は、Enter キーを押してスキップします。

公開鍵ファイル id_rsa.pub と秘密鍵ファイル id_rsa が作業ディレクトリに生成されます。この例では、作業ディレクトリは C:\Users\test です。

macOS または Linux コンピューター

ターミナルを開き、次のコマンドを実行してキーペアを生成します。

この例では、OpenSSH クライアントを使用してキーペアを生成します。
ssh-keygen -t rsa -b 2048 -f id_rsa
  • -t rsa: RSA キータイプ。

  • -b 2048:キー長 (ビット単位)。

  • -f id_rsa:キーファイル名。

重要

パスフレーズの入力を求められます。設定した場合、秘密鍵を使用するたびにパスフレーズが必要になります。

パスフレーズが不要な場合は、Enter キーを押してスキップします。

公開鍵ファイル id_rsa.pub と秘密鍵ファイル id_rsa が作業ディレクトリに生成されます。

2.3 一時的な公開鍵のインスタンスへの送信

Windows コンピューター

コマンドプロンプトを開き、ali-instance-cli.exe のディレクトリに移動し、次のコマンドを実行して一時的な公開鍵をインスタンスに登録します。

<instance_id> をインスタンス ID に、<public_key_path> をステップ 2.2 で生成した公開鍵ファイルのパスに、<ecs_username> を一時的な公開鍵を割り当てるユーザー名に置き換えます。
ali-instance-cli.exe send_public_key --instance <instance_id> --public-key <public_key_path> --user-name <ecs_username>

例:C:\Users\test\id_rsa.pub の公開鍵をインスタンス i-bp1****** に登録し、ecs-user ユーザーに割り当てます。

ali-instance-cli.exe send_public_key --instance i-bp1****** --public-key C:\Users\test\id_rsa.pub --user-name ecs-user
重要

コマンドが成功したら、60 秒以内に対応する秘密鍵を使用してインスタンスに接続します。

macOS または Linux コンピューター

ターミナルを開き、ali-instance-cli のディレクトリに移動し、次のコマンドを実行して一時的な公開鍵をインスタンスに登録します。

<instance_id> をインスタンス ID に、<public_key_path> をステップ 2.2 で生成した公開鍵ファイルのパスに、<ecs_username> を一時的な公開鍵を割り当てるユーザー名に置き換えます。
./ali-instance-cli send_public_key --instance <instance_id> --public-key <public_key_path> --user-name <ecs_username>

例:~/id_rsa.pub の公開鍵をインスタンス i-bp1****** に登録し、ecs-user ユーザーに割り当てます。

./ali-instance-cli send_public_key --instance i-bp1****** --public-key ~/id_rsa.pub --user-name ecs-user
重要
  • コマンドが成功したら、60 秒以内に対応する秘密鍵を使用してインスタンスに接続します。

コマンド実行後に "ERROR: 'install config_ecs_instance_connect' command failed" エラーが表示される場合

このエラーが表示された場合、config_ecs_instance_connect クラウドアシスタントプラグインのインストールに失敗しています。コマンドを再実行してください。エラーが解決しない場合は、プラグインを手動でインストールしてください。

ECS コンソールの使用

クラウドアシスタントを使用して、インスタンスに次のコマンドを送信し、config_ecs_instance_connect プラグインをインストールして起動します。

コマンドの作成と実行」をご参照ください。

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

CLI の使用

説明

この例では、インスタンス ID として 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 経由によるインスタンスへの接続

重要

パスワードまたは公開鍵が正しくないというプロンプトが表示された場合、公開鍵の有効期限が切れている可能性があります。一時的な公開鍵は 60 秒間有効です。

コマンドプロンプトまたはターミナルを開き、次のコマンドを実行してインスタンスに接続します。

<private_key_path> をステップ 2.2 で生成した秘密鍵ファイルのパスに、<ecs-username> をステップ 2.3 で指定したユーザー名に、<ecs_ip> をインスタンスのパブリック IP アドレスに置き換えます。
ssh -i <private_key_path> <ecs-username>@<ecs_ip>

例:秘密鍵 ~/id_rsa を使用して ecs-user としてインスタンス 223.***.***.187 に接続します。

ssh -i ~/id_rsa ecs-user@223.***.***.187

ali-instance-cli のポートフォワーディング機能を使用して、パブリック IP アドレスを持たないインスタンスに接続することもできます。詳細については、「Session Manager CLI のポートフォワーディング機能を使用したパブリック IP アドレスを持たないインスタンスへの接続」をご参照ください。

よくある質問

コマンド実行後にコマンドラインが応答しない (インスタンスが実行中でない場合)

ali-instance-cli コマンドを実行した後にコマンドラインが応答しない場合、インスタンスが実行中状態でない可能性があります。インスタンスのステータスを表示するには、このトピックの「インスタンスが実行中状態であるかの確認」をご参照ください。

コマンド実行後にコマンドラインが応答しない (セキュリティグループの設定の問題)

ali-instance-cli コマンドを実行した後にコマンドラインが応答しない場合、アウトバウンドトラフィックに必要なポートがセキュリティグループで開かれていない可能性があります。デフォルトでは、基本セキュリティグループはすべてのアウトバウンドトラフィックを許可します。この問題は、アウトバウンドルールを変更した場合や、高度セキュリティグループを使用した場合に発生する可能性があります。セキュリティグループのルールは次のように説明されています。

セッションマネージャーを使用して ECS インスタンスに接続する場合、ECS インスタンスで実行されているクラウドアシスタントエージェントがクラウドアシスタントサーバーに接続されていることを確認するために、アウトバウンドセキュリティグループに次のルールを追加します。

SSH や RDP (Remote Desktop Protocol) などの接続方法と比較して、クラウドアシスタントエージェントはセッションマネージャーサーバーへの WebSocket 接続を能動的に確立します。セキュリティルールでは、クラウドアシスタントサーバーのアウトバウンド WebSocket ポートを開くだけで済みます。セッションマネージャーの仕組みについては、このトピックの「セッションマネージャーの仕組み」セクションをご参照ください。
重要
  • デフォルトのセキュリティグループを含む基本セキュリティグループを使用する場合、すべてのアウトバウンドトラフィックが許可されます。追加の設定は不要です

  • 高度セキュリティグループを使用する場合、すべてのアウトバウンドトラフィックが拒否されます。関連するルールを設定する必要があります。次の表にルールを示します。セキュリティグループの詳細については、「基本セキュリティグループと高度セキュリティグループ」をご参照ください。

セキュリティグループにルールを追加する方法については、「セキュリティグループルールの追加」をご参照ください。

アクション

優先度

プロトコルタイプ

ポート範囲

承認オブジェクト

説明

許可

1

カスタム TCP

443

100.100.0.0/16

このポートは、クラウドアシスタントサーバーへのアクセスに使用されます。

許可

1

カスタム TCP

443

100.0.0.0/8

クラウドアシスタントエージェントをインストールまたは更新する際に、クラウドアシスタントエージェントのインストールパッケージが保存されているサーバーにアクセスするために使用されます。

許可

1

カスタム UDP

53

0.0.0.0/0

このポートはドメイン名の解決に使用されます。

セッションマネージャーのみを使用してインスタンスに接続する場合は、ECS インスタンスのセキュリティを向上させるために、セキュリティグループから SSH ポート (デフォルト 22) と RDP ポート (デフォルト 3389) を許可するインバウンドルールを削除します。

コマンド実行後に DeliveryTimeout エラーが報告される (クラウドアシスタントエージェントがオフラインの場合)

以下の図に示すように、DeliveryTimeout エラーが ali-instance-cli コマンドを実行した際に報告された場合、クラウドアシスタントエージェントが利用できない可能性があります。クラウドアシスタントエージェントのステータスを確認してください。詳細については、「インスタンスにクラウドアシスタントエージェントがインストールされているかを確認する」をご参照ください。

image

image

コマンド実行後に "session manager is disabled, please enable first" エラーが報告される

ali-instance-cli コマンドの実行後に session manager is disabled, please enable first エラーが表示される場合は、セッションマネージャーが無効になっています。 コンソールでセッションマネージャーを有効にできます。 詳細については、「セッションマネージャーを有効にする」をご参照ください。

長時間の無操作による接続の自動切断

セッションマネージャーを使用してターゲットインスタンスに接続した後、長時間の無操作が続くと接続は自動的に切断されます。デフォルトのアイドルタイムアウトは 3 分です。--idle-timeout パラメーターを使用して、カスタムの最大アイドル時間を指定できます。

たとえば、次のコマンドを実行してターゲットインスタンスに接続します。接続は 10 分間の無操作後に自動的に切断されます。

./ali-instance-cli session --instance instance-id --idle-timeout 600
説明

この機能には、ali-instance-cli のバージョンが次のいずれかのバージョン以降である必要があります。

  • Linux: 1.2.0.48

  • Windows: 1.1.0.48

  • macOS: 1.3.0.48

ali-instance-cli ログの分析方法

セッションマネージャー CLI で問題が発生した場合、ログを分析して原因を特定できます。

  • セッションマネージャー CLI ツールのログの表示:セッションマネージャー CLI (ali-instance-cli) を使用すると、ツールが配置されているディレクトリに ~/log/aliyun_ecs_session_log.2022XXXX のようなログフォルダーが生成されます。このフォルダーで関連するログを見つけることができます。

  • クラウドアシスタントエージェントのログの表示:

    • Linux

      /usr/local/share/aliyun-assist/<Cloud Assistant Agent version>/log/
    • Windows

      C:\ProgramData\aliyun\assist\<Cloud Assistant Agent version>\log