メニュー
Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

SSH を使用した Linux インスタンスへの接続

インスタンスを起動したら、これに接続し、普通のコンピュータと同じように使用できます。

注記

インスタンスを起動してから接続できるようになるまでには、数分かかる場合があります。インスタンスのステータスチェックが正常に終了したことを確認してください。この情報は、[Instances] ページの [Status Checks] 列で確認できます。

次の手順では、SSH クライアントを使って、インスタンスに接続する方法について説明します。インスタンスの接続でエラーが発生した場合は、「Troubleshooting Connecting to Your Instance」を参照してください。

前提条件

Linux インスタンスに接続する前に、以下の前提条件を満たしていることを確認してください。

  • SSH クライアントのインストール

    ほとんどの場合、Linux コンピュータにはデフォルトで SSH クライアントがあります。SSH クライアントがあるかどうかを確認するには、コマンドラインで ssh と入力します。使用しているコンピュータでコマンドが認識されない場合は、OpenSSH プロジェクトから、SSH ツールの完全なスイートの無料実装が提供されています。詳細については、http://www.openssh.com を参照してください。

  • AWS CLI ツールのインストール

    (オプション) サードパーティのパブリック AMI を使用する場合は、コマンドラインツールを使用してフィンガープリントを確認できます。AWS CLI のインストールの詳細については、『AWS Command Line Interface ユーザーガイド』の「準備作業」を参照してください。

  • インスタンスの ID を取得する

    Amazon EC2 コンソールを使用して、インスタンスの ID を取得できます ([Instance ID] 列を確認します)。必要に応じて、describe-instances (AWS CLI) または Get-EC2Instance (AWS Tools for Windows PowerShell) コマンドを使用することもできます。

  • インスタンスのパブリック DNS 名を取得する

    Amazon EC2 コンソールを使用して、インスタンスのパブリック DNS を取得できます ([Public DNS (IPv4)] 列を確認します。この列が非表示の場合は、[Show/Hide] アイコンを選択して [Public DNS (IPv4)] を選択します)。必要に応じて、describe-instances (AWS CLI) または Get-EC2Instance (AWS Tools for Windows PowerShell) コマンドを使用することもできます。

  • (IPv6 のみ) インスタンスの IPv6 アドレスを取得する

    インスタンスに IPv6 アドレスを割り当てた場合は、オプションでパブリック IPv4 アドレスまたはパブリック IPv4 DNS ホスト名でなく IPv6 アドレスを使用して、インスタンスに接続できます。ローカルコンピュータに IPv6 アドレスがあり、IPv6 を使用するように設定されている必要があります。Amazon EC2 コンソールを使用してインスタンスの IPv6 アドレスを取得できます ([IPv6 IPs] フィールドを確認してください)。必要に応じて、describe-instances (AWS CLI) または Get-EC2Instance (AWS Tools for Windows PowerShell) コマンドを使用することもできます。IPv6 の詳細については、「IPv6 アドレス」を参照してください。

  • プライベートキーを見つける

    インスタンスの起動時に指定したキーペアの .pem ファイルの完全修飾パスが必要です。

  • IP アドレスからインスタンスへのインバウンド SSH トラフィックを有効にする

    インスタンスに関連付けられているセキュリティグループで、IP アドレスからの受信 SSH トラフィックが許可されることを確認します。詳細については、「インスタンスへのネットワークアクセスの許可」を参照してください。

    重要

    デフォルトのセキュリティグループのデフォルトでは、受信 SSH トラフィックは許可されません。

Linux インスタンスへの接続

SSH クライアントを使用して Linux インスタンスに接続するには、次の手順に従います。インスタンスの接続でエラーが発生した場合は、「Troubleshooting Connecting to Your Instance」を参照してください。

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

  1. (オプション) ローカルシステムで (インスタンス上ではありません) 次のコマンドの 1 つを使用して、実行中のインスタンスの RSA キーフィンガープリントを確認できます。これは、サードパーティのパブリック AMI からインスタンスを起動した場合に、役立ちます。SSH HOST KEY FINGERPRINTS セクションを見つけて、RSA フィンガープリント (たとえば 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f) を書き留め、それをインスタンスのフィンガープリントと比較します。

    注記

    インスタンスが pending 状態ではなく running 状態であることを確認します。SSH HOST KEY FINGERPRINTS セクションは、インスタンスの最初の起動後にのみ使用できます。

  2. コマンドラインシェルで、インスタンスを起動したときに作成したプライベートキーファイルの場所にディレクトリを変更します。

  3. chmod コマンドを使って、秘密キーファイルが公開されていないことを確認します。たとえば、秘密キーファイルが my-key-pair.pem という名前の場合、次のコマンドを使用します。

    Copy
    chmod 400 /path/my-key-pair.pem
  4. ssh コマンドを使って、インスタンスに接続します。秘密キー (.pem) ファイルと user_name@public_dns_name を指定します。Amazon Linux の場合は、ユーザー名は ec2-user です。RHEL の場合は、ユーザー名は ec2-user または root のどちらかです。Ubuntu の場合は、ユーザー名は ubuntu または root です。Centos の場合は、ユーザー名は centos です。Fedora の場合は、ユーザー名は ec2-user です。SUSE の場合は、ユーザー名は ec2-user または root のどちらかです。それ以外の場合で、ec2-user および root が機能しない場合は、ご利用の AMI プロバイダーに確認してください。

    Copy
    ssh -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

    以下のようなレスポンスが表示されます。

    Copy
    The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (10.254.142.33)' can't be established. RSA key fingerprint is 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f. Are you sure you want to continue connecting (yes/no)?
  5. (IPv6 のみ) 別の方法として、IPv6 アドレスを使用してインスタンスに接続することもできます。ssh コマンドで、シークレットキー (.pem) ファイルへのパスと適切なユーザー名を指定します。Amazon Linux の場合は、ユーザー名は ec2-user です。RHEL の場合は、ユーザー名は ec2-user または root のどちらかです。Ubuntu の場合は、ユーザー名は ubuntu または root です。Centos の場合は、ユーザー名は centos です。Fedora の場合は、ユーザー名は ec2-user です。SUSE の場合は、ユーザー名は ec2-user または root のどちらかです。それ以外の場合で、ec2-user および root が機能しない場合は、ご利用の AMI プロバイダーに確認してください。

    Copy
    ssh -i /path/my-key-pair.pem ec2-user@2001:db8:1234:1a00:9691:9503:25ad:1761
  6. (オプション) セキュリティアラートのフィンガープリントが、ステップ 1 で入手したフィンガープリントと一致することを確認します。これらのフィンガープリントが一致しない場合、「中間者 (MITM) 」攻撃を受けている可能性があります。一致した場合は、次の手順に進んでください。

  7. yes と入力します。

    以下のようなレスポンスが表示されます。

    Copy
    Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (RSA) to the list of known hosts.

SCP を使用した Linux から Linux インスタンスへのファイルの転送

ローカルコンピュータと Linux インスタンスの間でファイルを転送する方法の 1 つとして、Secure Copy (SCP) を使用します。このセクションでは、SCP でファイルを転送する方法について説明します。この手順は、SSH を使用してインスタンスに接続する手順とよく似ています。

前提条件

  • SCP クライアントのインストール

    ほとんどの Linux、Unix、および Apple コンピュータには、デフォルトで SCP クライアントが含まれています。含まれていない場合は、OpenSSH プロジェクトから、SSH ツールの完全なスイートの無料実装が提供されており、これに SCP クライアントが含まれます。詳細については、http://www.openssh.org を参照してください。

  • インスタンスの ID を取得する

    Amazon EC2 コンソールを使用して、インスタンスの ID を取得できます ([Instance ID] 列を確認します)。必要に応じて、describe-instances (AWS CLI) または Get-EC2Instance (AWS Tools for Windows PowerShell) コマンドを使用することもできます。

  • インスタンスのパブリック DNS 名を取得する

    Amazon EC2 コンソールを使用して、インスタンスのパブリック DNS を取得できます ([Public DNS (IPv4)] 列を確認します。この列が非表示の場合は、[Show/Hide] アイコンを選択して [Public DNS (IPv4)] を選択します)。必要に応じて、describe-instances (AWS CLI) または Get-EC2Instance (AWS Tools for Windows PowerShell) コマンドを使用することもできます。

  • (IPv6 のみ) インスタンスの IPv6 アドレスを取得する

    インスタンスに IPv6 アドレスを割り当てた場合は、オプションでパブリック IPv4 アドレスまたはパブリック IPv4 DNS ホスト名でなく IPv6 アドレスを使用して、インスタンスに接続できます。ローカルコンピュータに IPv6 アドレスがあり、IPv6 を使用するように設定されている必要があります。Amazon EC2 コンソールを使用してインスタンスの IPv6 アドレスを取得できます ([IPv6 IPs] フィールドを確認してください)。必要に応じて、describe-instances (AWS CLI) または Get-EC2Instance (AWS Tools for Windows PowerShell) コマンドを使用することもできます。IPv6 の詳細については、「IPv6 アドレス」を参照してください。

  • プライベートキーを見つける

    インスタンスの起動時に指定したキーペアの .pem ファイルの完全修飾パスが必要です。

  • IP アドレスからインスタンスへのインバウンド SSH トラフィックを有効にする

    インスタンスに関連付けられているセキュリティグループで、IP アドレスからの受信 SSH トラフィックが許可されることを確認します。詳細については、「インスタンスへのネットワークアクセスの許可」を参照してください。

    重要

    デフォルトのセキュリティグループのデフォルトでは、受信 SSH トラフィックは許可されません。

SCP を使用してファイルを転送するステップを次に示します。既に SSH でインスタンスに接続し、フィンガープリントの確認が完了している場合は、SCP コマンドを実行するステップ (ステップ4) から開始できます。

SCP を使用してファイルを転送するには

  1. (オプション) ローカルシステムで (インスタンス上ではありません) 次のコマンドの 1 つを使用して、インスタンスの RSA キーフィンガープリントを確認できます。これは、サードパーティのパブリック AMI からインスタンスを起動した場合に、役立ちます。SSH HOST KEY FINGERPRINTS セクションを見つけて、RSA フィンガープリント (たとえば 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f) を書き留め、それをインスタンスのフィンガープリントと比較します。

    注記

    SSH HOST KEY FINGERPRINTS セクションは、インスタンスの最初の起動後にのみ使用できます。

  2. コマンドラインシェルで、インスタンスを起動した時に指定した秘密キーファイルの場所にディレクトリを変更します。

  3. chmod コマンドを使って、秘密キーファイルが公開されていないことを確認します。たとえば、秘密キーファイルが my-key-pair.pem という名前の場合、次のコマンドを使用します。

    Copy
    chmod 400 /path/my-key-pair.pem
  4. インスタンスのパブリック DNS 名を使って、インスタンスにファイルを転送します。たとえば、秘密キーファイルの名前が my-key-pair、転送するファイルが SampleFile.txt、インスタンスのパブリック DNS の名前が ec2-198-51-100-1.compute-1.amazonaws.com の場合、次のコマンドを使って、ファイルを ec2-user ホームディレクトリにコピーします。

    Copy
    scp -i /path/my-key-pair.pem /path/SampleFile.txt ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~

    ヒント

    Amazon Linux の場合は、ユーザー名は ec2-user です。RHEL の場合は、ユーザー名は ec2-user または root のどちらかです。Ubuntu の場合は、ユーザー名は ubuntu または root です。Centos の場合は、ユーザー名は centos です。Fedora の場合は、ユーザー名は ec2-user です。SUSE の場合は、ユーザー名は ec2-user または root のどちらかです。それ以外の場合で、ec2-user および root が機能しない場合は、ご利用の AMI プロバイダーに確認してください。

    以下のようなレスポンスが表示されます。

    Copy
    The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (10.254.142.33)' can't be established. RSA key fingerprint is 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f. Are you sure you want to continue connecting (yes/no)?
  5. (IPv6 のみ) 別の方法として、インスタンスの IPv6 アドレスを使用してファイルを転送することもできます。IPv6 アドレスは、\ でエスケープした角かっこ ([]) で囲む必要があります。

    Copy
    scp -i /path/my-key-pair.pem /path/SampleFile.txt ec2-user@\[2001:db8:1234:1a00:9691:9503:25ad:1761\]:~
  6. (オプション) セキュリティアラートのフィンガープリントが、ステップ 1 で入手したフィンガープリントと一致することを確認します。これらのフィンガープリントが一致しない場合、「中間者 (MITM) 」攻撃を受けている可能性があります。一致した場合は、次の手順に進んでください。

  7. yes と入力します。

    以下のようなレスポンスが表示されます。

    Copy
    Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (RSA) to the list of known hosts. Sending file modes: C0644 20 SampleFile.txt Sink: C0644 20 SampleFile.txt SampleFile.txt 100% 20 0.0KB/s 00:00

    注記

    bash: scp: command not found」エラーを受け取った場合は、まず Linux インスタンスに scp をインストールする必要があります。一部のオペレーティングシステムでは、これは openssh-clientsパッケージに含まれます。Amazon ECS-optimized AMI などの Amazon Linux バリアントでは、以下のコマンドを使用して scp をインストールします。

    Copy
    [ec2-user ~]$ sudo yum install -y openssh-clients

  8. 逆の方向 (Amazon EC2 インスタンスからローカルコンピュータに) にファイルを転送する場合は、ホストパラメータの順番を逆にするだけです。たとえば、SampleFile.txt ファイルを EC2 インスタンスからローカルコンピュータのホームディレクトリに SampleFile2.txt として転送するには、ローカルコンピュータで次のコマンドを実行します。

    Copy
    scp -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~/SampleFile.txt ~/SampleFile2.txt
  9. (IPv6 のみ) 別の方法として、インスタンスの IPv6 アドレスを使用して別の方向にファイルを転送することもできます。

    Copy
    scp -i /path/my-key-pair.pem ec2-user@\[2001:db8:1234:1a00:9691:9503:25ad:1761\]:~/SampleFile.txt ~/SampleFile2.txt