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

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

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

注記

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

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

前提条件

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

  • PuTTY のインストール

    PuTTY のダウンロードページから、PuTTY をダウンロードしてインストールします。すでにインストールされている旧バージョンの PuTTY がある場合は、最新バージョンをダウンロードすることをお勧めします。必ずスイート全体をインストールします。

  • インスタンスの 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 インスタンス用の受信トラフィックの認可」を参照してください。

PuTTYgen を使用した秘密キーの変換

PuTTY は、Amazon EC2 によって生成されるプライベートキー形式 (.pem) をネイティブにサポートしていません。PuTTY には、キーを必要な PuTTY 形式 (.ppk) に変換できる PuTTYgen と呼ばれるツールが含まれています。PuTTY を使用してインスタンスへの接続を試みる前に、秘密キーをこの形式 (.ppk) に変換する必要があります。

プライベートキーの変換方法

  1. PuTTYgen を開始します ([Start] メニューで [All Programs] > [PuTTY] > [PuTTYgen] を選択することなどにより)。

  2. [Type of key to generate] で、[ RSA] を選択します。

     PuTTYgen の RSA キー

    旧バージョンの PuTTYgen を使用している場合は、[SSH-2 RSA] を選択します。

  3. [Load] を選択します。デフォルトでは、PuTTYgen には拡張子 .ppk を持つファイルだけが表示されます。.pem ファイルの場所を特定するには、すべてのタイプのファイルを表示するオプションを選択します。

     すべてのファイルタイプを選択します
  4. インスタンスの起動時に指定したキーペアの .pem ファイルを選択してから、[Open] を選択します。[OK] を選択して、確認ダイアログボックスを閉じます。

  5. [Save private key] を選択して、PuTTY が使用できる形式でキーを保存します。PuTTYgen に、パスフレーズなしでキーを保存することに関する警告が表示されます。[Yes] を選択します。

    注記

    秘密キーのパスフレーズには、保護を強化する働きがあります。秘密キーが他者に見つかっても、パスフレーズがなければキーは使用不可能です。パスフレーズ使用における欠点は、インスタンスにログオンする、またはファイルをインスタンスにコピーするのに人間の介入が必要となるため、オートメーションが難しくなることです。

  6. キーペアに使用した名前と同じ名前をキーに指定します (例: my-key-pair)。PuTTY は自動的にファイル拡張子 .ppk を加えます。

プライベートキーが PuTTY で使用するための正しい形式となりました。これで、PuTTY の SSH クライアントを使用してインスタンスに接続することができます。

PuTTY セッションの開始

PuTTY を使用して Linux インスタンスに接続するには、次の手順に従います。秘密キーに作成した .ppk ファイルが必要になります。インスタンスの接続でエラーが発生した場合は、「Troubleshooting Connecting to Your Instance」を参照してください。

PuTTY セッションの開始方法

  1. (オプション) ローカルシステムで (インスタンス上ではありません) get-console-output (AWS CLI) コマンドを使用して、インスタンスの 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) を書き留め、それをインスタンスのフィンガープリントと比較します。

    Copy
    aws ec2 get-console-output --instance-id instance_id

    以下は、探すセクションを示す例です。

    -----BEGIN SSH HOST KEY FINGERPRINTS----- ... 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f ... -----END SSH HOST KEY FINGERPRINTS-----

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

  2. PuTTY を開始します ([スタート] メニューで [All Programs] > [PuTTY] > [PuTTY] を選択)。

  3. [Category] ペインで [Session] を選択し、次のフィールドに入力します。

    1. [Host Name] フィールドで、user_name@public_dns_name を入力します。AMI に対して、必ず適切なユーザー名を指定してください。(例:

      • Amazon Linux AMI の場合は、ユーザー名は ec2-user です。

      • RHEL AMI の場合は、ユーザー名は ec2-user または root のどちらかです。

      • Ubuntu AMI の場合、ユーザー名は ubuntu または root. です。

      • Centos AMI の場合、ユーザー名は centos です。

      • Fedora AMI の場合、ユーザー名は ec2-user です。

      • SUSE の場合は、ユーザー名は ec2-user または root のどちらかです。

      • それ以外の場合で、ec2-user および root が機能しない場合は、AMI プロバイダーに確認してください。

    2. (IPv6 のみ) インスタンスの IPv6 アドレスを使用して接続するには、「user_name@ipv6_address」と入力します。AMI に対して、必ず適切なユーザー名を指定してください。(例:

      • Amazon Linux AMI の場合は、ユーザー名は ec2-user です。

      • RHEL AMI の場合は、ユーザー名は ec2-user または root のどちらかです。

      • Ubuntu AMI の場合、ユーザー名は ubuntu または root. です。

      • Centos AMI の場合、ユーザー名は centos です。

      • Fedora AMI の場合、ユーザー名は ec2-user です。

      • SUSE の場合は、ユーザー名は ec2-user または root のどちらかです。

      • それ以外の場合で、ec2-user および root が機能しない場合は、AMI プロバイダーに確認してください。

    3. [Connection type] で [SSH] を選択します。

    4. [Port] が 22 であることを確認します。

     [PuTTY configuration] - [Session]
  4. [Category] ペインで、[Connection]、[SSH] の順に展開し、[Auth] を選択します。次のように入力します。

    1. [Browse] を選択します。

    2. キーペア用に生成した .ppk ファイルを選択してから、[Open] を選択します。

    3. (オプション) 後でこのセッションを再度開始する場合、将来使用できるようにセッション情報を保存できます。[Category] ツリーで [Session] を選択し、[Saved Sessions] にセッションの名前を入力して、[Save] を選択します。

    4. [Open] を選択して、PuTTY セッションを開始します。

     [PuTTY configuration] - [Auth]
  5. このインスタンスに接続するのが初めての場合は、接続先のホストを信頼するかどうかを尋ねるセキュリティアラートダイアログボックスが表示されます。

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

  7. [Yes] を選択します。ウィンドウが開き、インスタンスに接続した状態になります。

    注記

    プライベートキーを PuTTY フォーマットに変換するときにパスフレーズを指定した場合は、インスタンスへのログイン時にそのパスフレーズを指定する必要があります。

インスタンスの接続でエラーが発生した場合は、「Troubleshooting Connecting to Your Instance」を参照してください。

PuTTY Secure Copy Client を使用した Linux インスタンスへのファイルの転送

PuTTY Secure Copy Client (PSCP) は、Windows コンピュータと Linux インスタンスの間でファイルを転送できるようにするコマンドラインツールです。グラフィカルユーザーインターフェイス (GUI) を使用する場合は、WinSCP という名前のオープンソース GUI ツールを使用できます。詳細については、「WinSCP を使用した Linux インスタンスへのファイルの転送」を参照してください。

PSCP を使用するには、「PuTTYgen を使用した秘密キーの変換」で生成したプライベートキーが必要です。また、Linux インスタンスのパブリック DNS アドレスも必要です。

次の例では、ファイル Sample_file.txt を Windows コンピュータの C:\ ドライブから Amazon Linux インスタンス上の ec2-user ホームディレクトリに転送します。

Copy
pscp -i C:\path\my-key-pair.ppk C:\path\Sample_file.txt ec2-user@public_dns:/home/ec2-user/Sample_file.txt

(IPv6 のみ) 以下の例では、インスタンスの IPv6 アドレスを使用して Sample_file.txt ファイルを転送します。IPv6 アドレスは角かっこ ([]) で囲む必要があります。

Copy
pscp -i C:\path\my-key-pair.ppk C:\path\Sample_file.txt ec2-user@[ipv6-address]:/home/ec2-user/Sample_file.txt

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

WinSCP は Windows 用の GUI ベースのファイルマネージャで、SFTP、SCP、FTP、および FTPS プロトコルを使って、ファイルをリモートコンピュータにアップロードおよび転送することができます。WinSCP を使用すると、Windows マシンから Linux インスタンスにファイルをドラッグアンドドロップしたり、2 つのシステム間でディレクトリ構造全体を同期させることができます。

WinSCP を使用するには、「PuTTYgen を使用した秘密キーの変換」で生成した秘密キーが必要です。また、Linux インスタンスのパブリック DNS アドレスも必要です。

  1. http://winscp.net/eng/download.php から WinSCP をダウンロードしてインストールします。ほとんどの場合、デフォルトのインストールオプションでかまいません。

  2. WinSCP を起動します。

  3. [WinSCP login] 画面で、インスタンスのパブリック DNS ホスト名またはパブリック IPv4 アドレスを [Host name] に入力します。

    (IPv6 のみ) インスタンスの IPv6 アドレスを使用してログインするには、インスタンスの IPv6 アドレスを入力します。

  4. [User name] については、AMI のデフォルトユーザー名を入力します。Amazon Linux AMI の場合、ユーザー名は ec2-user です。Red Hat AMI の場合、ユーザー名は root で、Ubuntu AMI の場合、ユーザー名は ubuntu です。

  5. インスタンスのプライベートキーを指定します。[Private key] に対して、プライベートキーのパスを入力するか、[...] ボタンを選択して、ファイルを参照します。WinSCP の新しいバージョンでは、[Advanced] を選択して、高度なサイト設定を開き、[SSH] の [Authentication] を選択して、[Private key file] 設定を見つける必要があります。

    次に示すのは、WinSCP バージョン 5.9.4 からのスクリーンショットです。

     WinSCP の [Advanced] 画面

    WinSCP は PuTTY プライベートキーファイル (.ppk) ファイルを必要とします。PuTTYgen を使用して、.pem セキュリティキーファイルを .ppk フォーマットに変換することができます。詳細については、「PuTTYgen を使用した秘密キーの変換」を参照してください。

  6. (オプション) 左側のパネルで [Directories] を選択し、ファイルを追加するディレクトリのパスを [Remote directory] に入力します。WinSCP の新しいバージョンでは、[Advanced] を選択して、高度なサイト設定を開き、[Environment] の [Directories] を選択して、[Remote directory] 設定を見つける必要があります。

  7. [Login] を選択して接続し、[Yes] を選択してホストのフィンガープリントをホストのキャッシュに追加します。

     WinSCP 画面
  8. 接続確立後、接続ウィンドウには Linux インスタンスが右側、ローカルマシンが左側に表示されます。ローカルマシンからリモートファイルシステムへ、ファイルを直接ドラッグアンドドロップすることができます。WinSCP の詳細については、http://winscp.net/eng/docs/start のドキュメントを参照してください。

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

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