Windows Subsystem for Linux を使用した Windows から Linux インスタンスへの接続 - Amazon Elastic Compute Cloud

Windows Subsystem for Linux を使用した Windows から Linux インスタンスへの接続

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

次の手順では、Windows Subsystem for Linux (WSL) で Linux ディストリビューションを使用してインスタンスに接続する方法について説明します。WSL は無料でダウンロードでき、Windows でネイティブ Linux コマンドラインツールを直接実行できます。それと同時に、仮想マシンのオーバーヘッドなしに、従来の Windows デスクトップも実行できます。

WSL をインストールすると、PuTTY または PuTTYgen を使用する代わりに、ネイティブ Linux 環境を使用して Linux EC2 インスタンスに接続できます。Linux 環境では、Linux インスタンスにより簡単に接続できます。これは、Linux インスタンスに接続し、.pem キーファイルのアクセス権限を変更するために使用できるネイティブ SSH クライアントが付属しているためです。Amazon EC2 コンソールは、Linux インスタンスに接続するための SSH コマンドを提供します。この SSH コマンドから、トラブルシューティングのために詳細な出力を取得できます。詳細については、Windows Subsystem for Linux に関する情報を参照してください。

注記

WSL をインストールした後のすべての必須条件とステップは、「SSH を使用した Linux インスタンスへの接続」で説明しているものと同じです。また、そのエクスペリエンスはネイティブ Linux の使用と同様です。

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

前提条件

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

インスタンスの準備ができていることを確認する

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

インスタンスに接続するための一般的な前提条件を確認する

インスタンスのパブリック DNS 名または IP アドレス、およびインスタンスへの接続に使用するユーザー名を確認するには、「インスタンスに接続するための一般的な前提条件」を参照してください。

ローカルコンピューターに Windows Subsystem for Linux (WSL) と Linux ディストリビューションをインストールする

Windows 10 インストールガイドの手順を使用して、WSL と Linux ディストリビューションをインストールします。手順の例では、Linux の Ubuntu ディストリビューションをインストールしますが、任意のディストリビューションをインストールできます。コンピュータを再起動して変更を有効にすることが求められます。

プライベートキーを Windows から WSL にコピーする

WSL ターミナルウィンドウで、Windows から WSL に .pem ファイル (インスタンスの起動時に指定したキーペアの場合) をコピーします。インスタンスに接続する際に使用する、WSL の .pem ファイルへの完全修飾パスをメモします。Windows ハードドライブへのパスを指定する方法の詳細については、「C ドライブにアクセスする方法」を参照してください。キーペアと Windows インスタンスの詳細については、「Amazon EC2 キーペアと Windows インスタンス」を参照してください。

cp /mnt/<Windows drive letter>/path/my-key-pair.pem ~/WSL-path/my-key-pair.pem

WSL を使用して Linux インスタンスに接続します。

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

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

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

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

      sudo ssh -i /path/my-key-pair.pem my-instance-user-name@my-instance-public-dns-name
    • (IPv6) インスタンスに IPv6 アドレスがある場合は、その IPv6 アドレスを使用してインスタンスに接続できます。ssh コマンドで、プライベートキー (.pem) ファイルへのパス、適切なユーザー名、および IPv6 アドレスを指定します。

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

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

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

  3. 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 つとして、セキュアコピープロトコル (SCP) を使用します。このセクションでは、SCP でファイルを転送する方法について説明します。この手順は、SSH を使用してインスタンスに接続する手順と似ています。

前提条件

  • インスタンスにファイルを転送するための一般的な前提条件の確認

    インスタンスにファイルを転送するための一般的な前提条件は、インスタンスに接続するための一般的な前提条件と同様です。詳細については、「インスタンスに接続するための一般的な前提条件」を参照してください。

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

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

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

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

  1. インスタンスのパブリック DNS 名を使って、インスタンスにファイルを転送します。たとえば、プライベートキーファイルの名前が my-key-pair、転送するファイルが SampleFile.txt、ユーザー名が my-instance-user-name、インスタンスのパブリック DNS の名前が my-instance-public-dns-name、または IPv6 アドレスが my-instance-IPv6-address の場合、次のコマンドを使ってファイルを my-instance-user-name ホームディレクトリにコピーします。

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

      scp -i /path/my-key-pair.pem /path/SampleFile.txt my-instance-user-name@my-instance-public-dns-name:~
    • (IPv6) インスタンスに IPv6 アドレスがある場合は、インスタンスの IPv6 アドレスを使用してファイルを転送することができます。IPv6 アドレスは、(\) でエスケープした角かっこ ([ ]) で囲む必要があります。

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

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

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

  3. 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

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

    [ec2-user ~]$ sudo yum install -y openssh-clients
  4. 逆の方向 (Amazon EC2 インスタンスからローカルコンピュータに) にファイルを転送する場合は、ホストパラメータの順番を逆にします。たとえば、SampleFile.txt ファイルを EC2 インスタンスからローカルコンピュータのホームディレクトリに SampleFile2.txt として転送するには、ローカルコンピュータで次のコマンドのうち 1 つを実行します。

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

      scp -i /path/my-key-pair.pem my-instance-user-name@ec2-198-51-100-1.compute-1.amazonaws.com:~/SampleFile.txt ~/SampleFile2.txt
    • (IPv6) インスタンスに IPv6 アドレスがある場合、インスタンスの IPv6 アドレスを使用して別の方向にファイルを転送するには、次のコマンドを入力します。

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

WSL のアンインストール

Windows Subsystem for Linux のアンインストールの詳細については、「WSL ディストリビューションをアンインストールする方法」について参照してください。