LoginSignup
2
3

AWSのパブリックサブネットに踏み台サーバーを構築し、プライベートサブネットのサーバーへSSHする③(踏み台経由のSSH接続)

Last updated at Posted at 2023-12-08

前回はパブリックサブネットに踏み台用のEC2(Linuxサーバー)を構築する手順を確認しました。
今回はプライベートサブネットにさらにもう一台EC2(Linuxサーバー)を構築し、踏み台経由でSSH接続する手順を確認します。

「AWSのパブリックサブネットに踏み台サーバーを構築し、プライベートサブネットのサーバーへSSHする」の手順記事まとめ

VPC・サブネット作成
踏み台Linuxサーバー構築
踏み台経由のSSH接続←今ここ
Windowsnの踏み台サーバー作成
プライベートサブネット上のLinuxサーバーをWEBサーバー化しWindowサーバーから接続確認をする
※関連記事
Route53でPrivateHostedZoneを作成しVPC内の名前解決を行う

構成確認

今回はプライベートに一台サーバーを追加します。

image.png

プライベートサブネットに構築したサーバーへの接続フローは下記図のようになります。
まずはインターネット経由で踏み台サーバーへ接続します。踏み台サーバーからさらにSSH接続することで、プライベートサブネットのサーバーへ接続できます。

image.png

前々回の記事で、パブリックサブネットにNATGatewayを構築しました。プライベートサブネットのデフォルトゲートウェイ(0.0.0.0/0)はNATGatewayに向けられています。そのため、プライベートサブネットに構築しているEC2インスタンスからインターネットへのアウトバウンド接続を行う際はNATGateway経由の通信経路となります。

image.png

プライベートサブネットにEC2インスタンスを構築する

詳細な手順は前回の記事にてご紹介したため割愛します。
このEC2は今後Apacheをインストールするため、今回は名前を「HTTPS_DEMO_WEB」としました。

image.png

AMIは踏み台サーバーと同様に「AmazonLinux2023」を指定します。
image.png

インスタンスタイプも踏み台サーバーと同様に「t2.micro」を指定します。
image.png

キーペアは前回作成したものを指定します。
image.png

VPCは前々回に作成した「HTTPS_DEMO_VPC」を指定します。
サブネットにはプライベートサブネット(HTTPS_DEMO_SUB_PRV1a)を指定します。
「パブリックIPの自動割り当て」は無効化とします。
image.png

サーバーごとにセキュリティグループを分けたいため、セキュリティグループは新規作成します。
セキュリティグループ名・説明を入力します。

image.png
セキュリティグループルールを設定します。
「タイプ」には「SSH」を選択します。今回は踏み台サーバーからの接続のみ許可したいため、「ソースタイプ」には「カスタム」を指定します。
image.png
セキュリティグループの許可ルールのソースには、セキュリティグループを指定することもできます。今回は踏み台サーバーのセキュリティグループをソースとして指定します。
「ソース」のテキストボックスを押下するとプルダウンメニューが表示されます。プルダウンメニューの中から、踏み台サーバーに設定しているセキュリティグループ(HTTPS_DEMO_SG)を設定します。

image.png

「高度なネットワーク設定」を展開します。
今回はプライベートサブネット(10.0.1.0/24)内にサーバーを構築します。
そのため、プライベートIPには「10.0.1.4」を指定します。
image.png

ストレージは「8GB」とし、「gp3」を指定します。
高度な詳細は変更せず、「インスタンスを起動」を押下し、ステータスチェックが完了するまで待機します。
image.png

SCPで秘密鍵を送信する

プライベートサブネットに構築したEC2には、踏み台サーバー上からSSHにて接続します。
SSHに使用する秘密鍵は、踏み台サーバー構築時に作成したキーペアとなります。
プライベートサブネットのEC2にSSH接続するために、まずは踏み台サーバー上にキーペアを配置する必要があります。

SCPコマンドを使用すると、インターネットを通じてリモートのサーバーにファイルを転送することができます。今回はローカルの環境から踏み台サーバーあてにキーペアをSCPで転送します。

image.png

エクスプローラーを開き、キーペアを保存しているフォルダまで移動します。

image.png

エクスプローラー上部のフォルダパスの部分にカーソルを合わせ、「cmd」と入力しエンターキーを押下します。

image.png

キーペアを保存しているフォルダパスでコマンドプロンプトを起動することができます。

image.png

scpコマンドの構文は下記のようになります。

scp -i 接続に利用する秘密鍵 送信したいファイル名 ユーザー名@接続先サーバーのIP:送信先のディレクトリパス

今回はEC2作成時に使用したキーペア(HTTPS_DEMO_KEY01.pem)を使用して踏み台サーバーに接続し、キーペア(HTTPS_DEMO_KEY01.pem)を送信したいです。送信先のディレクトリは「ec2-user」のホームディレクトリとします。
その為、コマンドプロンプトには下記のようにコマンドを入力し実行しました。

scp -i HTTPS_DEMO_KEY01.pem HTTPS_DEMO_KEY01.pem ec2-user@踏み台サーバーのグローバルIP:/home/ec2-user

コマンドが成功すると、コマンドプロンプトにファイルサイズやファイル転送にかかった時間などが表示されます。

image.png

踏み台サーバーにSSH接続し、キーペアが転送されているか確認してみましょう。

image.png

ec2-userのホームディレクトリにて下記コマンドを実行します。

ls -la

先ほどSCPで転送したキーペア(HTTPS_DEMO_KEY01.pem)がホームディレクトリに存在することが確認できます。

image.png

現在、秘密鍵の権限は「664(所有者・usersグループ所属者が実行可能、その他第三者は読み取りのみ可能)」となっています。
この状態のまま秘密鍵を使用してSSH接続を行おうとすると、「Permissions 0644 for ‘xxx.key’ are too open.」というようなエラーが発生して接続が行えません。

image.png

その為、chmodコマンドでキーペアファイルの権限を「644」から「600(所有者のみ実行可能、その他ユーザーは権限無し)」に変更します。
chmodコマンドの構文は下記のようになります。

sudo chmod 600 ファイル名

今回はキーペアファイル(HTTPS_DEMO_KEY01.pem)の権限を変更するため、下記のようにコマンドを実行しました。

sudo chmod 600 HTTPS_DEMO_KEY01.pem

秘密鍵の権限を変更したら、プライベートサブネットのサーバーへSSH接続してみます。
SSHコマンドの構文は下記のようになります。

ssh -i 秘密鍵ファイル名 ユーザー名@接続先サーバーのIP

今回は「HTTPS_DEMO_KEY01.pem」という秘密鍵ファイルを使用して「ec2-user」でプライベートサブネットのサーバー「10.0.1.4」へと接続したいため、実行コマンドは下記のようになります。

ssh -i HTTPS_DEMO_KEY01.pem ec2-user@10.0.1.4

コマンドを実行し、踏み台サーバー経由でプライベートサブネットのサーバーへ接続できました。

image.png

ここまでお読みいただきありがとうございました。
次回はパブリックサブネットにWindowの踏み台サーバーを構築してみようと思います。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3