はじめに
AWS の EC2 インスタンスに SSH 接続する方法は複数あり、状況に応じた手段を選ぶことが重要 です。
基本的な 秘密鍵を使った方法 から 踏み台サーバー、SSM などの方法まで幅広く存在します。
本記事では、それらの方法を整理し、簡潔にまとめました。EC2 に適切にアクセスし、効率的に運用できるようになることを目的 としています。
書こうと思ったきっかけ
EC2 への SSH 接続は基本的な作業ですが、環境によって適切な方法が異なります。
特に、VPC 内のプライベートインスタンスや、鍵管理が不要な方法 を知りたいと考えました。
また、踏み台サーバーや SSM など、便利な接続方法を整理することで業務の効率化 が図れます。
自身の学習の備忘録として、また 他の人の参考になればと思いまとめました。
いろいろなSSH接続方法まとめ
AWS の EC2 インスタンスに接続する方法にはさまざまな選択肢があります。本記事では、代表的な手法を整理して紹介します。状況に応じて最適な方法を選びましょう...!
1. 一般的なSSH接続(秘密鍵を使用)
基本的なSSH接続方法です。秘密鍵を指定してログインします。
ssh -i /path/to/key.pem ec2-user@<EC2のパブリックIPまたはホスト名>
-i /path/to/key.pem
は秘密鍵の指定-
ec2-user
は Amazon Linux / Amazon Linux 2 のデフォルトユーザー- Ubuntu の場合は
ubuntu
- Debian の場合は
admin
- RHEL の場合は
ec2-user
またはroot
- Ubuntu の場合は
2. SSH設定ファイル (~/.ssh/config
) を使用
設定ファイルに情報を登録すると、簡単にSSH接続できるようになります。
設定ファイル (~/.ssh/config
) に以下を追加:
Host my-ec2
HostName <EC2のパブリックIPまたはホスト名>
User ec2-user
IdentityFile ~/.ssh/my-key.pem
これで、以下のように簡単に接続可能:
ssh my-ec2
3. EC2 Instance Connect(Webコンソールからの接続)
Amazon Linux を使用している場合、AWS マネジメントコンソールからWebブラウザ経由で接続できます。
AWS マネジメントコンソールの「EC2」 → 「インスタンス」 → 「接続」 → 「EC2 Instance Connect」を選択すると、Web ブラウザから SSH 接続が可能 です。(Amazon Linux のみ対応)
4. AWS Systems Manager (SSM) を使用(鍵不要の接続)
Session Manager を使うと、SSH鍵なしでEC2に接続できます。
事前準備
- EC2 に SSM Agent をインストール(Amazon Linux 2 / Ubuntu はデフォルトでインストール済み)
- IAM ロールに
AmazonSSMManagedInstanceCore
ポリシーを付与
5. Bastion(踏み台サーバー)経由の接続
VPC 内のプライベートEC2には直接SSHできないため、Bastion(踏み台サーバー)を経由して接続します。
方法1:SSHジャンプホストを使う
ssh -J ec2-user@<BastionのパブリックIP> ec2-user@<プライベートEC2のIP>
方法2:SSHトンネルを利用
ssh -i my-key.pem -L 2222:<プライベートEC2のIP>:22 ec2-user@<BastionのIP>
ssh -p 2222 ec2-user@localhost
6. Elastic IP を利用(固定IPでの接続)
EC2 のパブリックIPは、再起動すると変わることがあります。Elastic IP を割り当てることで、常に同じIPでアクセス可能になります。
ssh -i my-key.pem ec2-user@<Elastic IP>
まとめ
EC2 に SSH 接続する方法は、状況に応じてさまざまな選択肢 があります。
- 一般的な鍵認証
- SSH 設定ファイル
- Instance Connect
- SSM などを活用できます。
ネットワーク構成やセキュリティポリシーに応じて、最適な方法を選ぶことが重要 です。
今後も AWS の進化に伴い、新しい接続手段が出てくる可能性があるため、随時更新していきます!