EC2 Instance Connect を使用して Linux インスタンスに接続する - Amazon Elastic Compute Cloud

EC2 Instance Connect を使用して Linux インスタンスに接続する

以下の手順では、Amazon EC2 コンソール、AWS CLI、または SSH クライアントから EC2 Instance Connect を使用して Linux インスタンスに接続する方法について説明します。

要件

始める前に、前提条件を確認してください。

Amazon EC2 コンソールを使用した接続

Amazon EC2 コンソールから EC2 Instance Connect を使用してインスタンスに接続できます。接続許可は、EC2 Instance Connect が処理します。

要件

Amazon EC2 コンソールを使用して接続するには、インスタンスにパブリック IPv4 またはパブリック IPv6 アドレスが必要です。インスタンスにプライベート IPv4 アドレスのみが存在する場合は、ec2-instance-connect AWS CLI コマンド を使用して接続できます。

Amazon EC2 コンソールを使用して Linux インスタンスに接続するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. インスタンスを選択し、[接続] を選択します。

  4. [EC2 Instance Connect] タブを選択します。

  5. [接続タイプ] で、[EC2 Instance Connect を使用して接続] を選択します。

  6. 選択する場合は、接続する IP アドレスを選択します。それ以外の場合は、IP アドレスが自動的に選択されます。

  7. [ユーザー名] でユーザー名を確認します。

  8. [接続] を選択してターミナルウィンドウを開きます。

AWS CLI を使用して接続する

ec2-instance-connect AWS CLI コマンドを使用すると、SSH クライアントを使用してインスタンスに接続できます。

接続タイプを指定しないと、EC2 Instance Connect が以下の手順でインスタンスへの接続を試みます。

  • パブリック IPv4 アドレスを使用して接続します。

  • パブリック IPv4 アドレスがない場合は、プライベート IPv4 アドレスおよび EC2 Instance Connect Endpoint を使用して接続します。

  • プライベート IPv4 アドレスも EC2 Instance Connect Endpoint もない場合は、パブリック IPv6 アドレスを使用して接続します。

プライベート IPv6 アドレスへの接続はサポートされていません。

要件

AWS CLI バージョン 2 を使用できるように準備する必要があります。詳細については、「AWS CLI の最新バージョンを使用してインストールまたは更新を行う」を参照してください。

接続タイプ
auto (デフォルト)

CLI は、次の順序でインスタンスの IP アドレスを使用し、対応する接続タイプを使用して接続を試みます。

  • パブリック IPv4: direct

  • プライベート IPv4: eice

  • パブリック IPv6: direct

direct

CLI は、次の順序でインスタンスの IP アドレスを使用して接続を試みます (EC2 Instance Connect Endpoint 経由では接続しません)。

  • パブリック IPv4

  • パブリック IPv6

  • プライベート IPv4

eice

CLI は常にインスタンスのプライベート IPv4 アドレスを使用します。

注記

将来的には、auto 接続タイプの動作を変更する可能性があります。希望する接続タイプを確実に使用するには、--connection-type を direct または eice のいずれかに明示的に設定することをお勧めします。

EC2 Instance Connect を使用してインスタンスに接続すると、EC2 Instance Connect API から SSH パブリックキーがインスタンスメタデータにプッシュされ、60 秒間保持されます。ユーザーにアタッチされた IAM ポリシーにより、ユーザーはパブリックキーをインスタンスメタデータにプッシュすることを許可されます。

インスタンス ID を使用してインスタンスに接続するには

インスタンス ID のみがわかっていて、インスタンスへの接続時に使用する接続タイプを EC2 Instance Connect に決定させる場合は、ec2-instance-connect CLI を使用して ssh パラメータとインスタンス ID を指定します。

aws ec2-instance-connect ssh --instance-id i-1234567890example
ヒント

このコマンドの使用時にエラーが発生した場合は、ssh パラメータがこのメジャーバージョンでのみ使用できるため、AWS CLI バージョン 2 を使用していることを確認してください。また、AWS CLI バージョン 2 の最新マイナーバージョンに定期的に更新して、最新の機能にアクセスすることをお勧めします。詳細については、「AWS Command Line Interface ユーザーガイド」の「AWS CLI バージョン 2 について」を参照してください。

インスタンス ID と EC2 Instance Connect Endpoint を使用してインスタンスに接続するには

EC2 Instance Connect Endpoint を介してインスタンスに接続する場合は、前述のコマンドを使用し、--connection-type パラメータと eice 値も指定します。

aws ec2-instance-connect ssh --instance-id i-1234567890example --connection-type eice
インスタンス ID と独自のプライベートキーファイルを使用してインスタンスに接続するには

独自のプライベートキーを使用して EC2 Instance Connect Endpoint 経由でインスタンスに接続する場合は、インスタンス ID とプライベートキーファイルへのパスを指定します。パスに file://を含めないでください。次のようなパスは失敗します: file:///path/to/key

aws ec2-instance-connect ssh --instance-id i-1234567890example --private-key-file /path/to/key.pem

独自のキーと SSH クライアントを使用して接続する

EC2 Instance Connect API の使用中に、独自の SSH キーを使用して、選択した SSH クライアントからインスタンスに接続できます。これは、インスタンスにパブリックキーをプッシュする EC2 Instance Connect 機能からメリットを得ることを可能にします。この接続方法は、パブリック IP アドレスとプライベート IP アドレスを持つインスタンスに対して機能します。

要件
  • キーペアの要件

  • プライベート IP アドレスのみがあるインスタンスに接続する場合、SSH セッションを開始するローカルコンピュータには、EC2 Instance Connect サービスエンドポイントへの接続 (SSH パブリックキーをインスタンスにプッシュするため) と、SSH セッションを確立するためのインスタンスのプライベート IP アドレスへのネットワーク接続が必要です。EC2 Instance Connect のサービスエンドポイントには、インターネットまたは AWS Direct Connect パブリック仮想インターフェイス経由で到達が可能です。インスタンスのプライベート IP アドレスに接続するには、AWS Direct ConnectAWS Site-to-Site VPNVPC ピアリングなどのサービスを利用できます。

独自のキーと任意の SSH クライアントを使用してインスタンスに接続するには
  1. (オプション) 新しい SSH プライベートキーとパブリックキーを生成する

    新しい SSH プライベートキーとパブリックキー (my_key および my_key.pub) は、次のコマンドを使用して生成できます。

    ssh-keygen -t rsa -f my_key
  2. SSH パブリックキーをインスタンスにプッシュする

    send-ssh-public-key コマンドを使用して、SSH パブリックキーをインスタンスにプッシュします。AL2023 または Amazon Linux 2 を使用してインスタンスを起動した場合、AMI のデフォルトのユーザー名は ec2-user です。Ubuntu を使用してインスタンスを起動した場合、AMI のデフォルトのユーザー名は ubuntu です。

    以下に、ec2-user を認証するために、指定されたアベイラビリティーゾーンで指定されたインスタンスにパブリックキーをプッシュする例を示しています。

    aws ec2-instance-connect send-ssh-public-key \ --region us-west-2 \ --availability-zone us-west-2b \ --instance-id i-001234a4bf70dec41EXAMPLE \ --instance-os-user ec2-user \ --ssh-public-key file://my_key.pub
  3. プライベートキーを使用してインスタンスに接続する

    パブリックキーがインスタンスメタデータから削除される前に (削除されるまでの時間は 60 秒です)、プライベートキーを使用してインスタンスに接続するには、ssh コマンドを使用します。パブリックキーに対応するプライベートキー、インスタンスを起動するために使用した AMI のデフォルトのユーザー名、およびインスタンスのパブリック DNS 名を指定します (プライベートネットワーク経由で接続する場合は、プライベート DNS 名または IP アドレスを指定します)。IdentitiesOnly=yes オプションを追加し、ssh config 内のファイルと指定したキーのみが接続に使用されるようにします。

    ssh -o "IdentitiesOnly=yes" -i my_key ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

トラブルシューティング

インスタンスへの接続を試みた際にエラーが発生した場合は、以下を参照してください。