【EC2】PuTTYからSSHで踏み台サーバを経由し、プライベートのサーバに接続する方法

こんにちは、ジャンクです。
今回は、パブリックに立てたサーバからプライベートに立てたサーバにPuTTYによるSSH接続をしたいと思います。

■用意するもの

・AWSアカウント
・PuTTY
・PuTTYgen
※PuTTY、PuTTYgenのダウンロードはこちら

■比較

以前の記事でも同様の内容をご紹介しておりますが本記事の内容では以下メリットがあります。

・セキュリティ面
以前の記事はキーファイル(.pem)を踏み台サーバに直接アップロードしているため第3者が踏み台サーバに接続できてしまった場合、簡単にプライベートのサーバに接続されてしまいます。ですが、本記事では、プライベートのサーバに接続する際にもキーファイル(.ppk)を要求するため侵入できない安全な接続方法となっております。

・ファイルを編集しなくてよい
以前の記事を上から見ていきますとホスト名を変更するため、キーファイル(.pem)を踏み台サーバのファイルに書き込み、configファイルの作成でファイルを編集する作業があり、これらが本記事では必要なくなります!

・再起動が必要ない
以前の記事ではホスト名を変更した際にインスタンスを再起動させていますが、1つ目の比較の通りホスト名の変更も必要なくなっているためこの再起動も行いません!

■本題
実際にプライベートのサーバに接続していきたいと思います。
まず、踏み台サーバの確認です。
パブリックに踏み台サーバを立てます。
下の図のようにパブリックIPが与えられるようにします。

画像1jump01

続いて、プライベートのサーバを確認します。
下の2つの図よりこのサーバがプライベートにあることが確認できました。

jump02

jump03

では、インスタンスに接続しましょう!

PuTTYを開き、パブリックIPをコピーして“ホスト名(またはIPアドレス)”の箇所にペーストします。

jump04

左側の接続→SSH→認証のところにはサーバを立ち上げるときに作成したキーを指定します。
キーファイル(.ppk)のみ指定できるためPuTTYgenでキーファイル(.ppm)ファイルから変換。

※変換方法はこちら

指定ができましたら、サーバに接続したいと思います。

jump05

踏み台サーバへの接続ができました。

ここからプライベートのサーバに接続していきたいと思います。

PuTTYのタイトルバー(ウィンドウの上に“ec2-user@ip~”が書かれている枠内)で右クリックすると下の画像のように
表示されますので“Change Settings”をクリックします。

jump06

すると下の図のように表示されますので、踏み台への接続に使用したセッションを選択し、続いてトンネルを選択、
図のように入力します。

源ポートは踏み台サーバへ接続しているポート、送り先はプライベートのサーバの
“プライベートIP:接続に使用するポート“を入力し、追加、適用します。

jump07

jump08

適用後、下の図のようにタイトルバーで右クリックし、“New Session”を選択します。

jump09

すると下の図の画面になりますので踏み台で使用したセッションを選択、ホスト名には“localhost”と入力し、
キーファイル(.ppk)はプライベートのサーバのキーを選択してください。

jump10

接続に成功すると下の図のようになります。
踏み台のサーバからプライベートのサーバに切り替わったのが確認できました!

jump11

いかがでしたでしょうか。
本記事は以上となります。
最後までご覧いただきましてありがとうございました!

■参考URL

・Amazon EC2編~EC2インスタンスにPuTTYで接続してみよう!~

・トンネルの設定

この記事を書いた人

aws-recipe-user