SSH を使用して Linux または macOS から Linux インスタンスに接続します。 - Amazon Elastic Compute Cloud

SSH を使用して Linux または macOS から Linux インスタンスに接続します。

Secure Shell (SSH) を使用して、Linux または macOS オペレーティングシステムを実行するローカルマシンから Linux インスタンスに接続することも、EC2 Instance Connect や AWS Systems Manager セッションマネージャーなどのプラットフォームに依存しない接続ツールを使用することもできます。プラットフォームに依存しないツールの詳細については、「Linux インスタンスへの接続」を参照してください。

このページでは、SSH クライアントを使用してインスタンスに接続する方法について説明します。Windows から Linux インスタンスに接続するには、「Windows から接続する」を参照してください。

注記

インスタンスに接続しようとしているときにエラーが発生した場合は、インスタンスが SSH 接続の前提条件 のすべてを満たしていることを確認してください。前提条件をすべて満たしているにもかかわらず Linux インスタンスに接続できない場合は、「インスタンスへの接続に関するトラブルシューティング」を参照してください。

SSH 接続の前提条件

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

インスタンスのステータスの確認

インスタンスを起動してから接続できるようになるまでには、数分かかる場合があります。インスタンスのステータスチェックが成功していることを確認します。この情報は、[Instances (インスタンス)] ページの [Status check (ステータスチェック)] 列で確認できます。

インスタンスに接続するためのパブリック DNS 名とユーザー名の取得

インスタンスのパブリック DNS 名または IP アドレス、およびインスタンスへの接続に使用するユーザー名を確認するには、「インスタンスに関する情報を取得する」を参照してください。

プライベートキーを見つけ、アクセス許可を設定する

インスタンスへの接続に必要なプライベートキーを特定し、キーのアクセス許可を設定するには、「プライベートキーを見つけ、許可を設定する」を参照してください。

必要に応じてローカルコンピュータに SSH クライアントをインストールする

ローカルコンピュータには、デフォルトで SSH クライアントがインストールされている場合があります。これは、コマンドラインに「ssh」と入力することで確認できます。ご使用のコンピュータでこのコマンドが認識されない場合、SSH クライアントをインストールできます。

  • インストール可能なコンポーネントとして、最新バージョンの Windows サーバー 2019 と Windows 10 - OpenSSH が含まれています。詳細については、「Windows での OpenSSH」を参照してください。

  • 以前のバージョンの Windows - OpenSSH をダウンロードしてインストールします。詳細については、「Win32-OpenSSH」を参照してください。

  • Linux および MacOS X - OpenSSH をダウンロードしてインストールします。詳細については、https://www.openssh.com を参照してください。

SSH クライアントを使用して Linux インスタンスに接続する

SSH クライアントを使用して Linux インスタンスに接続するには、次の手順に従います。インスタンスの接続でエラーが発生した場合は、「インスタンスへの接続に関するトラブルシューティング」を参照してください。

SSH を使用したインスタンスへの接続
  1. ターミナルウィンドウで ssh コマンドを使用して、インスタンスに接続します。プライベートキー (.pem) のパスとファイル名、インスタンスのユーザー名、およびインスタンスのパブリック DNS 名や IPv6 アドレスを指定します。プライベートキー、インスタンスのユーザー名、およびインスタンスの DNS 名や IPv6 アドレスの検索方法の詳細については、「プライベートキーを見つけ、許可を設定する」および「インスタンスに関する情報を取得する」を参照してください。インスタンスに接続するには、次のいずれかのコマンドを使用します。

    • (パブリック DNS) インスタンスのパブリック DNS 名を使用して接続するには、次のコマンドを入力します。

      ssh -i /path/key-pair-name.pem instance-user-name@instance-public-dns-name
    • (IPv6) インスタンスに IPv6 アドレスがある場合、インスタンスの IPv6 アドレスを使用して接続するには、次のコマンドを入力します。

      ssh -i /path/key-pair-name.pem instance-user-name@instance-IPv6-address

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

    The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (198-51-100-1)' can't be established.
    ECDSA key fingerprint is l4UB/neBad9tvkgJf1QZWxheQmR59WgrgzEimCG6kZY.
    Are you sure you want to continue connecting (yes/no)?
  2. (オプション) セキュリティアラートのフィンガープリントが、(オプション) インスタンスのフィンガープリントを取得する で事前に取得したフィンガープリントと一致することを確認します。これらのフィンガープリントが一致しない場合、何者かが中間者 (MITM) 攻撃を試みている可能性があります。一致した場合は、次のステップに進んでください。

  3. yes と入力します。

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

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

SCP クライアントを使用した Linux インスタンスへのファイルの転送

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

前提条件

以下では、インスタンスのパブリック DNS 名、またはインスタンスに IPv6 アドレスがある場合は IPv6 アドレスを使用し、SCP でファイルを転送する手順を示します。

SCP を使用してコンピュータとインスタンス間でファイルを転送するには
  1. コンピュータ上のソースファイルの場所と、インスタンス上の送信先パスを決定します。以下の例では、プライベートキーファイルの名前が key-pair-name.pem、転送するファイルが my-file.txt、インスタンスのユーザー名が ec2-user、インスタンスのパブリック DNS の名前が instance-public-dns-name で、インスタンスの IPv6 アドレスが instance-IPv6-address です。

    • (パブリック DNS) インスタンスの送信先にファイルを転送するには、コンピュータから次のコマンドを入力します。

      scp -i /path/key-pair-name.pem /path/my-file.txt ec2-user@instance-public-dns-name:path/
    • (IPv6) インスタンスに IPv6 アドレスがある場合、インスタンスの送信先にファイルを転送するには、コンピュータから次のコマンドを入力します。IPv6 アドレスは、(\) でエスケープした角かっこ ([ ]) で囲む必要があります。

      scp -i /path/key-pair-name.pem /path/my-file.txt ec2-user@\[instance-IPv6-address\]:path/
  2. SSH を使用してインスタンスに接続していない場合は、次のようなレスポンスが表示されます。

    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)?

    (オプション) オプションで、セキュリティアラートのフィンガープリントがインスタンスのフィンガープリントと一致することを確認できます。詳細については、(オプション) インスタンスのフィンガープリントを取得する を参照してください。

    yes と入力します。

  3. 転送が成功した場合、レスポンスは以下のようになります。

    Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (RSA) 
    to the list of known hosts.
    my-file.txt                                100%   480     24.4KB/s   00:00
  4. 逆の方向 (Amazon EC2 インスタンスからコンピュータ) にファイルを転送するには、ホストパラメータの順番を逆にします。例えば、次の例に示すように、EC2 インスタンスからローカルコンピュータの送信先に my-file.txt として my-file2.txt を転送できます。

    • (パブリック DNS) コンピュータの送信先にファイルを転送するには、コンピュータから次のコマンドを入力します。

      scp -i /path/key-pair-name.pem ec2-user@instance-public-dns-name:path/my-file.txt path/my-file2.txt
    • (IPv6) インスタンスに IPv6 アドレスがある場合、コンピュータの送信先にファイルを転送するには、コンピュータから次のコマンドを入力します。IPv6 アドレスは、(\) でエスケープした角かっこ ([ ]) で囲む必要があります。

      scp -i /path/key-pair-name.pem ec2-user@\[instance-IPv6-address\]:path/my-file.txt path/my-file2.txt