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

所要時間2分
0

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

簡単な説明

EC2 Linux インスタンスは、デフォルトの認証方法として SSH キーペアファイルを使用します。キーペアファイルを使用すると、SSH のユーザー名とパスワードが不要になります。安全な環境を維持するために、踏み台ホストにはプライベートキーを保管しないでください。踏み台ホストを使用して接続するには、クライアントで ssh-agent 転送を使用します。ssh-agent を使用すると、管理者はプライベートキーを踏み台に保存しなくても、踏み台から別のインスタンスに接続できます。

解決策

前提条件

  • インターネット経由でホストにアクセスするには、踏み台ホストが VPC のパブリックサブネットに存在している必要があります。
  • 踏み台ホストからの SSH 接続のみを受け入れるように、プライベート Linux インスタンスのセキュリティグループを設定します。
  • 踏み台ホストのセキュリティグループを、既知で信頼できる IP アドレスのみからの SSH 接続 (TCP/22) を許可するように設定します。

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

注: openssh-clients パッケージは、ほとんどの Linux および macOS ディストリビューションにデフォルトでインストールされ、ssh-agent が含まれています。

1.    以下のコマンドを実行して、ssh-agent をバックグラウンドで起動します。ssh-agent は、SSH キーをメモリに保存します。

#  eval $(ssh-agent)

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

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

3.    以下のコマンドを実行して、キーが ssh-agent に追加されていることを確認します。

# ssh-add -l

4.    以下のコマンドを実行して、踏み台ホストに接続します。以下のコマンドで、ユーザーBastion_Host_****IP_address をユースケースに適した値に置き換えてください。

# ssh -A User@Bastion_Host_IP_Address

注: 直前のコマンドには必ず -A フラグを含めてください。-A フラグを追加しないと、キーがメモリに追加されないため、ssh-agent 転送は機能しません。SSH キーをメモリに追加した後は、-i フラグを使用して SSH キー自体を指定する必要はありません。これは、SSH が ssh-agent に保存されているすべての SSH キーを自動的に使用しようとするためです。

5.    踏み台ホストに接続したら、以下のコマンドを実行してプライベート Linux インスタンスに接続します。以下のコマンドで、ユーザーPrivate_instance_IP_address をユースケースに適した値に置き換えてください。

# ssh User@Private_instance_IP_address

プライベートインスタンスと一致するプライベートキーが ssh-agent にロードされると、接続は成功します。

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

PuTTY (Windows 用の無料の SSH クライアント) を使用して、Windows から Linux VPC インスタンスに接続できます。SSH エージェント機能を利用するには、Pageant (SSH 認証エージェント) を使用してください。Pageant はプライベートキーをメモリに保持します。Pageant をインストールすると、PuTTY のエージェント転送オプションを使用してプライベートサブネットのインスタンスに接続できます。

1.    PuTTY ダウンロードページから PuTTY と Pageant をダウンロードしてインストールします。

2.    PuTTY は SSH 鍵の PEM 形式をネイティブにサポートしていません。PuTTY を使用してインスタンスに接続するには、PuTTYgen を使用してプライベートキーを PEM 形式から PuTTY 形式に変換します。PuTTYgen は PuTTY ダウンロードページから入手できます。詳細については、「](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html#putty-private-key)PuTTYgen を使用してプライベートキーを変換する[ 」を参照してください。

3.    Pageant を開いて、プライベートキーを追加します。PuTTY 形式のキーを Pageant にインポートするには、[スタート] メニューから Pageant アプリケーションを起動します。デフォルトでは、Pageant はシステムトレイで最小化されて開きます。

**注:**システムトレイに Pageant アイコンが表示されない場合は、タスクバーの設定を使用して追加してください。詳細については、support.microsoft.com ウェブサイトの「タスクバー通知領域のカスタマイズ」を参照してください。

4. SSH キーを追加するには、システムトレイの Pageant アイコンを右クリックし、[キーを追加] を選択します。追加されたキーを表示するには、システムトレイの Pageant アイコンを右クリックし、[キーを表示] を選択します。

5.    以下の手順を実行して、PuTTY SSH セッションを開始し、[エージェント転送を許可] をオンにします。

  • [スタート] メニューから、[すべてのプログラム]、[PuTTY]、[PuTTY] を選択します。
  • [カテゴリ] ペインで、[セッション] を選択します。
  • [ホスト名] フィールドで、次のいずれかを実行します。
    インスタンスのパブリック DNS 名を使用して接続するには、user-name@instance-public-dns と入力します。
    インスタンスの IPv4 アドレスを使用して接続するには、user-name@instance-IPv4-address と入力します。
  • [接続タイプ][SSH] を選択し、[ポート] の値が 22 であることを確認します。
  • [カテゴリ] ペインで、[接続][SSH] を展開し、[認証] を選択します。
  • [エージェント転送を許可] を選択します。
  • [開く] を選択します。

6.    踏み台に SSH プライベートキーがなくても、踏み台から VPC 内の任意のインスタンスに接続できます。他のインスタンスに接続するには、以下のコマンドを使用します。以下のコマンドで、ユーザーPrivate_instance_IP_address をユースケースに適した値に置き換えてください。

# ssh User@Private_instance_IP_address

プライベートインスタンスと一致するプライベートキーが Pageant にロードされると、接続は成功します。

AWS公式
AWS公式更新しました 10ヶ月前
コメントはありません

関連するコンテンツ