Session Managerは、Cloud Assistantが提供する機能で、安全で便利な方法でElastic Compute Service (ECS) インスタンスに接続できます。 ali-instance-cliは、Session Managerが提供するCLIツールです。 このトピックでは、ali-instance-cliを使用して、コンピューターのポートからECSインスタンスにネットワークトラフィックを転送する方法について説明します。
前提条件
接続するインスタンスにCloud Assistant Agentがインストールされています。 インスタンスがWindowsインスタンスの場合、インストールされるCloud Assistant Agentのバージョンは2.1.3.256以降である必要があります。 インスタンスがLinuxインスタンスの場合、インストールされるCloud Assistant Agentのバージョンは2.2.3.256以降である必要があります。 Cloud Assistant Agentのインストール方法については、「Cloud Assistant Agentのインストール」をご参照ください。
セッションマネージャーが有効です。 Session Managerを有効にする方法については、「Session Managerを使用したインスタンスへの接続」をご参照ください。
背景情報
ali-instance-cliを使用してインスタンスへのポート転送を設定する場合、インスタンスのパブリックIPアドレスを指定する必要はありませんが、インスタンスのIDとポート番号を指定する必要があります。 次に、Session Manager Clientを使用して、コンピュータのポートからインスタンスの指定されたポートにネットワークトラフィックを転送できます。 これにより、ECSインスタンス上のサービスに安全かつ便利な方法でアクセスできます。 セッションマネージャーの詳細については、「セッションマネージャー」をご参照ください。
LinuxおよびmacOSオペレーティングシステム
この例では、テストユーザーが使用されます。 実行する必要がある操作は、実際のユーザーとディレクトリによって異なる場合があります。
Session Managerクライアントにログインします。
Session Manager Clientにali-instance-cliをインストールします。
オペレーティングシステムに基づいて次のいずれかのコマンドを実行し、ali-instance-cliをインストールします。
Linux
curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/linux/ali-instance-cli chmod a + x ali-instance-cli
macOS:
curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/mac/ali-instance-cli chmod a + x ali-instance-cli
AccessKeyペア、Security Token Service (STS) トークン、またはCredentialsURIを設定します。
AccessKeyペアまたはSTSトークンの取得方法については、「AccessKeyペアの作成」または「STSとは」をご参照ください。
testディレクトリに切り替えます。
cd /ホーム /テスト
認証方法を設定します。
次の認証方法がサポートされています。
AccessKeyペアベースの認証
次のコマンドを実行し、プロンプトに従ってAccessKey ID、AccessKey secret、およびリージョンIDを入力します。
. /ali-instance-cli configure -- mode AK
STSトークンベースの認証
説明次のコマンドで、region、ak、sk、およびtokenを実際のリージョンID、AccessKey ID、AccessKey secret、およびSTSトークンに置き換えます。
. /ali-instance-cli configure set -- mode StsToken -- region "region" -- access-key-id "ak" -- access-key-secret "sk" -- sts-token "token"
CredentialsURIベースの認証
次のコマンドを実行し、プロンプトに従ってCredentialsURIとRegionIDを指定します。
説明CredentialsURIの値を、構成する認証サーバーのIPアドレスに設定します。
. /ali-instance-cli configure -- mode=CredentialsURI
次のコマンド出力は、AccessKeyペアベースの認証方法が設定されていることを示しています。
次のコマンドを実行して、コンピュータのポートからインスタンスのポートにネットワークトラフィックを転送します。
. /ali-instance-cli portforward -i "instance id" -l 8080 -r 80
説明この例では、Session Managerを使用してポート転送を実行する方法を示します。 この例では、コンピューターのポート8080とインスタンスのポート80が使用されます。 ビジネス要件に基づいて他のポートを指定できます。 インスタンスidを実際のインスタンスIDに置き換えます。
次のコマンド出力は、Session Managerによって、コンピューターの指定されたポートからインスタンスの指定されたポートへの転送パスが確立されていることを示しています。
Windows オペレーティングシステム
WindowsコンピューターでSession Manager Clientを使用してインスタンスに接続する前に、コンピューターにOpenSSHがインストールされていることを確認してください。 WindowsオペレーティングシステムにOpenSSHをインストールする方法については、 クラウドアシスタントを使用して、ECS WindowsインスタンスにOpenSSHをインストールします。
この例では、テストユーザーが使用されます。 実行する必要がある操作は、実際のユーザーとディレクトリによって異なる場合があります。
Session Managerクライアントにログインします。
詳細については、「接続方法の概要」をご参照ください。
Session Manager Clientにali-instance-cliをダウンロードします。
ali-instance-cli.exe for Windowsをダウンロードして、コンピュータのディレクトリに保存します。 この例では、
C:\Users\test
ディレクトリが使用されています。config
という名前のファイルを作成し、ファイルに設定を追加します。C:\Users\<Username> ディレクトリに、
という名前のフォルダを作成します。ssh
。説明C:\Users\<Username> を実際のディレクトリに置き換えます。 この例では、
C:\Users\test
が使用されています。デスクトップの左下隅にあるアイコンをクリックし、
Windows PowerShell
と入力します。[Windows PowerShell] をクリックします。
C:\Users\usernameディレクトリで、mkdirを実行し
ます。ssh
コマンドを実行して、という名前のフォルダを作成します。ssh
。
で。ssh
フォルダ、config
という名前のファイルを作成します。重要config
ファイル名に拡張子を含めることはできません。config
ファイルにコンテンツを追加します。次のコマンドのali-instance-cli.exeを、ali-instance-cliファイルの絶対パスに置き換えます。 この例では、
C:\Users\test\ali-instance-cli.exe
が使用されています。ホストi-* ProxyCommand C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "ali-instance-cli.exe ssh -i '% h' -- port' % p'"
AccessKeyペアまたはSTSトークンを設定します。
AccessKeyペアまたはSTSトークンの取得方法については、「AccessKeyペアの作成」または「STSとは」をご参照ください。
を選択して [実行] ダイアログボックスを開きます。 cmdと入力し、Enter
を押してコマンドプロンプトウィンドウを開きます。testディレクトリに切り替えます。
cd C:\ユーザー \テスト
認証方法を設定します。
次の認証方法がサポートされています。
AccessKeyペアベースの認証
次のコマンドを実行し、プロンプトに従ってAccessKey ID、AccessKey secret、およびリージョンIDを入力します。
ali-instance-cli.exe configure -- mode AK
STSトークンベースの認証
説明次のコマンドで、region、ak、sk、およびtokenを実際のリージョンID、AccessKey ID、AccessKey secret、およびSTSトークンに置き換えます。
ali-instance-cli.exe設定-モードStsToken -- region "region" -- access-key-id "ak" -- access-key-secret "sk" -- sts-token "token"
CredentialsURIベースの認証
次のコマンドを実行し、プロンプトに従ってCredentialsURIとRegionIDを指定します。
ali-instance-cli.exe configure -- mode=CredentialsURI
次のコマンド出力は、AccessKeyペアベースの認証方法が設定されていることを示しています。
次のコマンドを実行して、コンピュータのポートからインスタンスのポートにネットワークトラフィックを転送します。
ali-instance-cli.exe portforward -i "instance id" -l 8080 -r 80
説明この例では、Session Managerを使用してポート転送を実行する方法を示します。 この例では、コンピューターのポート8080とインスタンスのポート80が使用されます。 ビジネス要件に基づいて他のポートを指定できます。 インスタンスidを実際のインスタンスIDに置き換えます。
次のコマンド出力は、Session Managerによって、コンピューターの指定されたポートからインスタンスの指定されたポートへの転送パスが確立されていることを示しています。
ユースケース: インスタンスのMySQLサービスにアクセスする
MySQLサービスがインスタンスでポート3306を使用していると仮定します。 Session Manager Clientがインストールされているコンピュータは、Linuxオペレーティングシステムを実行します。 ali-instance-cliを使用して、コンピューターのポート33306からインスタンスのサービスにアクセスできます。
次のコマンドを実行して、コンピュータのポート33306からインスタンスのポート3306にネットワークトラフィックを転送します。
. /ali-instance-cli portforward -i "instance id" -l 33306 -r 3306
次のコマンド出力は、Session Managerによって、コンピューターの指定されたポートからインスタンスの指定されたポートへの転送パスが確立されていることを示しています。
次のコマンドを実行して、コンピューターからインスタンスのMySQLサービスにアクセスします。
mysql -uroot -h127.0.0.1 -ppassword -- port=33306
説明passwordをMySQLパスワードに置き換えます。
次のコマンド出力は、インスタンス上のMySQLサービスにアクセスしたことを示します。
ali-instance-cliログは、MySQLクライアントによって開始された接続である新しい接続が受け入れられたことを示します。
exit
コマンドを実行して、MySQLへの接続を閉じます。ali-instance-cliログは、接続が閉じられていることを示します。
よくある質問
Session Manager Clientを使用しているときにエラーが発生した場合は、ログを表示して問題を特定および分析できます。
Session Managerクライアントの現在の時刻に生成されたログを表示します。 例:
/home/test/log/aliyun_ecs_session_log.2022XXXX
オペレーティングシステムに基づいて、次のいずれかのディレクトリにあるCloud Assistant Agentのログを表示します。
Linux
/usr/local/share/aliyun-assist/<クラウドアシスタントのバージョン番号>/log/
Windows
C:\ProgramData\aliyun\assist\<クラウドアシスタントのバージョン番号>\log
Session Manager Clientを使用してインスタンスに接続するときにSession Managerが有効になっていない場合、ssh_exchange_identification: Connection closed by remote host
エラーメッセージが表示されます。 さらに、セッションマネージャーは無効です。有効にしてください最初
のエントリがsession managerクライアントログに表示されます。 ECSコンソールでSession Managerを有効にできます。 詳細については、「Session Managerを使用したインスタンスへの接続」をご参照ください。