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

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

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

Note

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

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

前提条件

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

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

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

  • Amazon EC2 CLI ツールをインストールする

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

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

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

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

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

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

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

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

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

    Important

    デフォルトのセキュリティグループのデフォルトでは、受信 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)を書き留め、それをインスタンスのフィンガープリントと比較します。

    Note

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

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

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

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

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

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

    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. (オプション)セキュリティアラートのフィンガープリントが、ステップ 1 で入手したフィンガープリントと一致することを確認します。これらのフィンガープリントが一致しない場合、「中間者(MITM)」攻撃を受けている可能性があります。一致した場合は、次の手順に進んでください。

  6. yes と入力します。

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

    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)または ec2-describe-instances(Amazon EC2 CLI)コマンドを使用することもできます。

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

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

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

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

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

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

    Important

    デフォルトのセキュリティグループのデフォルトでは、受信 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)を書き留め、それをインスタンスのフィンガープリントと比較します。

    Note

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

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

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

    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 ホームディレクトリにコピーします。

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

    Tip

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

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

    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. (オプション)セキュリティアラートのフィンガープリントが、ステップ 1 で入手したフィンガープリントと一致することを確認します。これらのフィンガープリントが一致しない場合、「中間者(MITM)」攻撃を受けている可能性があります。一致した場合は、次の手順に進んでください。

  6. yes と入力します。

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

    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

    Note

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

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

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

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