スキップしてコンテンツを表示

踏み台ホストを使用してプライベートサブネットの Amazon EC2 Linux インスタンスに安全に接続する方法を教えてください。

所要時間2分
0

踏み台ホストを使用して、プライベートサブネットで実行されている Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスに接続したいと考えています。

簡単な説明

EC2 Linux インスタンスは、デフォルトの認証方法として SSH ユーザー名とパスワードの代わりに SSH キーペアファイルを使用します。踏み台ホストを使用して接続するには、クライアントで ssh-agent 転送を使用します。ssh-agent は、踏み台のプライベートキーを使用しなくても、管理者を踏み台から別のインスタンスに接続します。

デフォルトでは、ほとんどの Linux および macOS ディストリビューションには、ssh-agent を含む openssh-clients パッケージが含まれています。Windows ディストリビューションの場合は、PuTTY を使用して Linux インスタンスに接続し、Pageant を使用してプライベートキーを管理します。Pageant をインストールした後、PuTTY のエージェント転送オプションを使用してプライベートサブネットのインスタンスに接続できます。

重要: 安全な環境を維持するために、踏み台ホストにはプライベートキーを保管しないでください。

解決策

注: ssh-agent はメモリ内で実行されるため、新しいターミナルセッションを開くか、コンピュータを再起動するたびに次の手順を繰り返す必要があります。

前提条件: 構成に次は以下の設定が含まれていることを確認してください。

  • 踏み台ホストは、仮想プライベートクラウド (VPC) のパブリックサブネットにある。
  • プライベートサブネット内のインスタンスのセキュリティグループは、踏み台ホストからの SSH 接続のみを許可している。
  • 踏み台ホストのセキュリティグループは、既知で信頼できる IP アドレスからのみポート TCP/22 で SSH 接続を許可している。

macOS または Linux クライアントでの ssh-agent 転送を設定する

次の手順を実行します。

  1. 以下のコマンドを実行して、ssh-agent をバックグラウンドで開始します。

    eval $(ssh-agent)
  2. 以下のコマンドを実行して、SSH キーを ssh-agent に追加します。

    ssh-add "/path/to/key.pem"

    注: path/to/key を、ローカルマシン上の.pem ファイルへのパスに置き換えてください。ssh-agent は、SSH キーをメモリに保存します。

  3. 次のコマンドを実行して、ssh-agent がキーを保存していることを確認します。

    ssh-add -l

    注: キーが出力に表示されていることを確認します。
    出力例:

     # 2048 SHA256:abc123... /home/user/.ssh/my-key.pem (RSA)
  4. 次のコマンドを実行して、ssh-agent 転送が有効になっている踏み台ホストに接続します。

    ssh -A User@Bastion_Host_IP_Address

    注: User を実際のユーザー名に、Bastion_Host_IP_address を踏み台ホストの IP アドレスに置き換えてください。Amazon マシンイメージ (AMI) のデフォルトユーザー名を確認するには、「デフォルトのユーザー名」を参照してください。ssh-forwarding を使用するには、-i フラグの代わりに -A フラグを使用してください。ssh-agent を使用すると、SSH はメモリに読み込まれたキーを自動的に使用します。

  5. 次のコマンドを実行してプライベート Linux インスタンスに接続します。

    ssh User@Private_instance_IP_address

    注: User を実際のユーザー名に、Private_instance_IP_address をインスタンスの IP アドレスに置き換えてください。

Windows クライアントでエージェント転送を設定する

次の手順を実行します。

  1. PuTTY、Pageant、PuTTYgen をダウンロードしてインストールします。ツールをダウンロードするには、PuTTY のウェブサイトの「Download PuTTY」(PuTTY のダウンロード) を参照してください。
  2. PuTTY を使用してインスタンスに接続するには、PuTTYgen を使用してプライベートキーを PEM 形式から PuTTY 形式に変換します。
    注: PuTTY は SSH キーに PEM 形式を使用できません。
  3. [スタート] メニューを選択し、Pageant を開きます。
    注: デフォルトでは、Pageant はシステムトレイで最小化されて開きます。システムトレイに Pageant アイコンが表示されない場合は、タスクバーの設定を使用して追加してください。手順については、Microsoft のウェブサイトの「Windows でタスク バーをカスタマイズする」を参照してください。
  4. SSH キーを追加するには、Pageant アイコンのコンテキスト (右クリック) メニューを開き、[キーを追加] をクリックします。次に、プライベートキーに移動します。
    注: 追加されたキーを表示するには、Pageant アイコンのコンテキスト (右クリック) メニューを開き、[キーを表示] を選択します。
  5. [スタート] メニューをクリックし、[すべてのプログラム] を開きます。
  6. [PuTTY] を選択し、次に [PuTTY] を選択します。
  7. [カテゴリ] で [セッション] を選択します。
  8. [ホスト名]に、user-name@instance-public-dns と入力して、インスタンスのパブリック DNS 名に接続します。または、user-name@instance-IPv4-address と入力してインスタンスの IPv4 アドレスに接続します。
    注: user-nameを実際のユーザー名に、instance-public-dns をインスタンスのパブリック DNS に、instance-IPv4-address をインスタンスの IPv4 アドレスに置き換えてください。
  9. 要件に基づいて [接続タイプ] と [SSH] の値を設定します。[ポート] に、22 と入力します。
  10. [カテゴリ] で [接続] を展開します。
  11. [SSH]、[認証] の順に選択します。
  12. [エージェント転送を許可] をクリックします。
  13. [開く] をクリックします。
  14. インスタンスに接続するには、次のコマンドを実行します。
ssh User@Private_instance_IP_address

注: User を実際のユーザー名に、Private_instance_IP_address をインスタンスの IP アドレスに置き換えてください。

AWS公式更新しました 6ヶ月前
1コメント

This article was reviewed and updated on 2026-02-17.

エキスパート

応答済み 18日前

関連するコンテンツ