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

Elastic Compute Service:公開キーを登録し、ali-instance-cliを使用してキーを使用してインスタンスに接続する

最終更新日:Dec 28, 2023

このトピックでは、ali-instance-cliのsend_public_keyサブコマンドを実行して公開鍵を登録し、パスワードではなくキーを使用してElastic Compute Service (ECS) インスタンスに接続する方法について説明します。

前提条件

背景情報

ali-instance-cliのsend_public_keyサブコマンドを実行して、指定されたユーザーが使用するSSH公開鍵をインスタンスに送信できます。 SSH公開キーは60秒間有効です。 この60秒間に、SSH公開鍵を使用して、パスワードなしで指定されたユーザーとしてインスタンスに接続できます。

Session Manager Clientは、Linux、macOS、およびWindowsオペレーティングシステムをサポートしており、これらのオペレーティングシステムでは使用方法が異なります。 詳細については、このトピックの次のセクションを参照してください。

LinuxまたはmacOSオペレーティングシステム

説明

この例では、テストユーザーが使用されます。 実行する必要がある操作は、実際のユーザーとディレクトリによって異なる場合があります。

  1. Session Managerクライアントにログインします。

  2. 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 
  3. (オプション) configという名前のファイルを作成し、ファイルに設定を追加します。

    インスタンスのIDを使用してインスタンスに接続する場合は、この手順を実行します。

    1. を作成します。ssh現在の作業ディレクトリ内のディレクトリ。 この例では、/home/testを作業ディレクトリとして使用します。

      mkdir。ssh
    2. 切り替えます。sshディレクトリ。

      cd. ssh
    3. configファイルを作成して開きます。

      vim設定
    4. Iキーを押して挿入モードに入ります。

    5. configファイルにコンテンツを追加します。

      説明

      次のコマンドのali-instance-cliを、ali-instance-cliファイルの絶対パスに置き換えます。 この例では、/home/test/ali-instance-cliが使用されています。

      ホストi-*
          ProxyCommand sh -c "ali-instance-cli ssh -i '% h' -- port' % p'" 
    6. Escキーを押して挿入モードを終了します。

    7. :wqと入力し、Enterキーを押してファイルを保存して終了します。

    8. configファイルに対する実行権限を付与します。

      chmod 755設定
  4. AccessKeyペアまたはSecurity Token Service (STS) トークンを設定します。

    AccessKeyペアまたはSTSトークンの取得方法については、「AccessKeyペアの作成」または「STSとは」をご参照ください。

    1. testディレクトリに切り替えます。

      cd /ホーム /テスト
    2. 認証方法を設定します。

      次の認証方法がサポートされています。

      • AccessKeyペアベースの認証

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

        . /ali-instance-cli configure -- mode AK
      • STSトークンベースの認証

        説明

        次のコマンドで、regionaksk、および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"

      次のようなコマンド出力は、認証方法が設定されていることを示します。AK.png

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

    ssh-keygen -t rsa

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

    説明

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

  6. Session Manager Clientで次のコマンドを実行して、接続先のインスタンスに公開鍵を送信します。

    . /ali-instance-cli send_public_key -- instance <instance-id> -- public-key "<オンプレミス公開鍵ファイルまたはオンプレミス公開鍵ファイルのパス>" -- user-name testuser
    説明

    -- user-nameパラメーターは、指定された公開キーのユーザー名を指定します。 この例では、-- user-nameはtestuserに設定されています。 ユーザー名を指定しない場合、パラメーターはデフォルトでrootに設定されます。 ユーザー名を指定する場合は、指定したユーザー名がインスタンスに存在することを確認してください。

  7. 次のSSHコマンドのいずれかを実行して、パスワードの代わりに公開鍵を使用してインスタンスに接続します。

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

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

      ssh -i ~/.ssh/id_rsa testuser @ instance_ip
      説明

      ~/.ssh/id_rsaを実際のキーファイルパスに、instance_ipを接続先のインスタンスのIPアドレスに、testuserを接続に使用するユーザー名に置き換えます。

    • インスタンスのIDを使用して、インスタンスに接続します。

      ssh -i ~/.ssh/id_rsa testuser @ instance_id
      説明

      ~/.ssh/id_rsaを実際のキーファイルパスに、instance_idを接続先のインスタンスのidに、testuserを接続に使用するユーザー名に置き換えます。

    次のコマンド出力は、Session Managerを使用してSSH経由でインスタンスに接続していることを示しています。连接实例

Windows オペレーティングシステム

WindowsコンピューターでSession Manager Clientを使用してインスタンスに接続する前に、コンピューターにOpenSSHがインストールされていることを確認してください。 WindowsオペレーティングシステムにOpenSSHをインストールする方法については、 Cloud Assistant Agentを使用して、Windows ECSインスタンスにOpenSSHをインストールします

説明

この例では、テストユーザーが使用されます。 実行する必要がある操作は、実際のユーザーとディレクトリによって異なる場合があります。

  1. Session Managerクライアントにログインします。

  2. Session Manager Clientにali-instance-cliをダウンロードしてインストールします。

    次のいずれかのコマンドを実行して、オペレーティングシステムに基づいてali-instance-cliをインストールします。

    • OpenSSHクライアントを使用して、ali-instance-cliをダウンロードします。

      Invoke-WebRequest -Uri "https://aliyun-client-assist.oss-cn-beijing.aliyuncs.com/session-manager/windows/ali-instance-cli.exe" -OutFile <destination>
      説明

      <destination> を、ali-instance-cliのダウンロード先のパスに置き換えます。

    • ブラウザを使用してali-instance-cliをダウンロードします。

      ali-instance-cli.exe for Windowsをダウンロードして、コンピュータのディレクトリに保存します。 この例では、C:\Users\testディレクトリが使用されています。

  3. (オプション) configという名前のファイルを作成し、ファイルに設定を追加します。

    インスタンスのIDを使用してインスタンスに接続する場合は、この手順を実行します。

    1. C:\Users\<Username> ディレクトリに、という名前のフォルダを作成します。ssh

      説明

      C:\Users\<Username> を実際のディレクトリに置き換えます。 この例では、C:\Users\testが使用されています。

      1. デスクトップの左下隅にあるwin2016 搜索.pngアイコンをクリックし、Windows PowerShellと入力します。

      2. [Windows PowerShell] をクリックします。

      3. C:\Users\usernameディレクトリで、mkdirを実行します。sshコマンドを実行して、という名前のフォルダを作成します。ssh

    2. 。sshフォルダ、configという名前のファイルを作成します。

      重要

      configファイル名に拡張子を含めることはできません。

    3. 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'" 
  4. AccessKeyペアまたはSTSトークンを設定します。

    AccessKeyペアまたはSTSトークンの取得方法については、「AccessKeyペアの作成」または「STSとは」をご参照ください。

    1. [開始] > [実行] を選択して [実行] ダイアログボックスを開きます。 cmdと入力し、Enterを押してコマンドプロンプトウィンドウを開きます。

    2. testディレクトリに切り替えます。

      cd C:\ユーザー \テスト
    3. 認証方法を設定します。

      次の認証方法がサポートされています。

      • AccessKeyペアベースの認証

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

        . \ali-instance-cli.exe configure -- mode AK
      • STSトークンベースの認証

        説明

        次のコマンドで、regionaksk、およびtokenを実際のリージョンID、AccessKey ID、AccessKey secret、およびSTSトークンに置き換えます。

        . \set -- mode StsToken -- region "region" -- access-key-id "ak" -- access-key-secret "sk" -- sts-token "token"
        を設定するali-instance-cli.exe

      次のようなコマンド出力は、認証方法が設定されていることを示します。

      windows AK(新).png

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

    ssh-keygen -t rsa

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

    説明

    生成される公開キーのデフォルトパスは、C:\Users\Administrator/.ssh/id_rsa.pubです。

  6. Session Manager Clientで次のコマンドを実行して、接続先のインスタンスに公開鍵を送信します。

    . /ali-instance-cli send_public_key -- instance <instance-id> -- public-key "<オンプレミス公開鍵ファイルまたはオンプレミス公開鍵ファイルのパス>" -- user-name testuser
    説明

    -- user-nameパラメーター、指定された公開キーのユーザー名を指定します。 この例では、-- user-nameはtestuserに設定されています。 ユーザー名を指定しない場合、パラメーターはデフォルトでrootに設定されます。 ユーザー名を指定する場合は、指定したユーザー名がインスタンスに存在することを確認してください。

  7. 次のSSHコマンドのいずれかを実行して、パスワードの代わりに公開鍵を使用してインスタンスに接続します。

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

      ssh -i ~/.ssh/id_rsa testuser @ instance_ip
      説明

      ~/.ssh/id_rsaを実際のキーファイルパスに、instance_ipを接続先のインスタンスのIPアドレスに、testuserを接続に使用するユーザー名に置き換えます。

    • インスタンスのIDを使用して、インスタンスに接続します。

      ssh -i ~/.ssh/id_rsa testuser @ instance_id
      説明

      ~/.ssh/id_rsaを実際のキーファイルパスに、instance_idを接続先のインスタンスのidに、testuserを接続に使用するユーザー名に置き換えます。

    次のコマンド出力は、Session Managerを使用してSSH経由でインスタンスに接続していることを示しています。连接实例

FAQ

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

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