AWS EC2でSSH接続する方法【Mac・Windows対応】初心者向けにわかりやすく解説
生徒
「AWSでEC2インスタンスを作ったんですが、SSH接続の方法がよくわかりません…」
先生
「EC2インスタンスへのSSH接続は、セキュアにリモート操作を行うための重要な手順ですね。MacとWindowsそれぞれで解説していきましょう。」
生徒
「使ってるパソコンによってやり方が違うんですね!」
先生
「はい、Macはターミナル、Windowsは主にPowerShellやTera Termなどを使います。それでは順番に手順を確認していきましょう。」
1. SSH接続とは?EC2インスタンスにログインするための仕組み
AWS EC2でインスタンスを起動したら、次にやることは「SSH接続」です。SSHとは「Secure Shell」の略で、暗号化された安全な通信でリモートのコンピュータにログインできる仕組みです。
AWS EC2インスタンスはLinuxサーバが多いため、ローカル環境からコマンドラインでSSH接続して操作することが基本になります。
2. 接続準備:キーペア(.pemファイル)のダウンロードと保存
EC2インスタンスを起動する際に「キーペア」を作成したはずです。このキーペアには秘密鍵(.pemファイル)が含まれており、これを使ってSSH接続を行います。
まずはこの.pemファイルを安全な場所に保存しておきましょう。絶対に誰にも共有してはいけません。また、Windowsユーザーの場合はこの.pemファイルを.ppk形式に変換する必要がある場合もあります。
3. MacでEC2にSSH接続する手順
Macには標準で「ターミナル」が搭載されているため、追加のソフトウェアは不要です。以下の手順で接続します。
- ターミナルを起動する
- .pemファイルに適切なパーミッションを設定する
- SSHコマンドで接続する
chmod 400 your-key-name.pem
ssh -i your-key-name.pem ec2-user@インスタンスのパブリックIPアドレス
「Permission denied」エラーが出た場合は、.pemファイルのパーミッション(権限)が適切でない可能性があるため、chmod 400の実行を忘れずに。
4. WindowsでEC2にSSH接続する方法(PowerShell編)
Windows 10以降のPowerShellは、SSHコマンドが標準で利用できます。手順はMacとほぼ同じですが、ファイルパスの表記が異なります。
ssh -i "C:\Users\ユーザー名\Downloads\your-key-name.pem" ec2-user@パブリックIP
「このファイルのパーミッションが開きすぎています」と警告が出る場合は、次のように権限を変更します(またはTera Termの使用を検討しましょう)。
5. WindowsでTera Termを使ってSSH接続する方法
Tera TermはWindowsで人気のSSHクライアントソフトです。以下の手順でEC2と接続できます。
- Tera Termをインストールする
- EC2のパブリックIPアドレスを指定して「SSH接続」を選択
- ユーザー名は「ec2-user」、認証鍵には
.ppkファイルを使用
.pemファイルを.ppkに変換するには、PuTTYgenというツールを使用します。変換後、Tera Termで使用できます。
6. 接続できない時のトラブルシューティング
EC2インスタンスにSSH接続できない場合、以下のような原因が考えられます。
- セキュリティグループの設定でポート22が許可されていない
- IPアドレスが変わっている(再起動後など)
- ユーザー名が間違っている(例:Amazon Linuxは
ec2-user、Ubuntuはubuntu) - 秘密鍵のパーミッションが適切でない
上記を順に確認することで、多くのSSH接続エラーは解決できます。
7. よくある質問(FAQ)
sudo yum update や sudo apt update)など、セキュリティ対策が推奨されます。
8. まとめ
今回は、AWS EC2インスタンスにSSH接続するための方法を、MacユーザーとWindowsユーザーの両方に向けてわかりやすく解説しました。EC2でサーバーを立ち上げたら、まず最初に行うべき作業が「SSH接続」であり、これをクリアすることでサーバー操作の第一歩が始まります。
特に初心者の方は、AWS EC2のSSH接続手順を理解しておくことがとても重要です。パーミッション設定やユーザー名の違い、Windowsでの.ppk変換など、少しつまずきやすいポイントもありますが、この記事を読んで手順を丁寧に確認すればきっと接続できるようになります。
また、セキュリティグループの設定や、インスタンスの公開IPアドレスなど、ネットワークやAWS特有の設定を確認することも大切です。AWS EC2とSSH接続はクラウド運用の基本スキルであり、将来的にWebサーバー、APIサーバー、開発環境構築など、さまざまな用途に応用できます。
以下に、SSH接続をスクリプト化するJavaの簡易サンプルも紹介します。あくまで疑似コードですが、SSH接続の概念をJavaで表現しています。
public class SSHConnection {
public static void main(String[] args) {
String pemFile = "your-key-name.pem";
String ip = "your-public-ip";
String user = "ec2-user";
System.out.println("接続コマンド:");
System.out.println("ssh -i " + pemFile + " " + user + "@" + ip);
}
}
このように、AWS EC2とSSHの関係性をコードでも理解することで、今後のクラウド開発・インフラ構築がスムーズになります。AWSではこのような基礎を押さえておくことで、LambdaやRDS、CloudFrontなど他のサービス活用にもつながっていきます。
特にSSH、EC2接続、.pemファイルの管理、Tera Term、Macのターミナル操作など、検索されやすいキーワードを意識しながら今後も学習していきましょう。
生徒
「最初は難しそうだと思ったけど、MacでもWindowsでもSSH接続の手順がしっかりわかりました!」
先生
「接続できるようになると、サーバーの操作が一気に広がりますね。AWSではEC2の使い方が基本中の基本です。」
生徒
「.pemファイルの取り扱いとか、ユーザー名の違いとか、ちゃんと理解していないと接続できない理由もわかりました。」
先生
「そうです。今回はSSH接続の基礎を学んだので、今後はセキュリティグループやSSH鍵の自動管理など、応用にも挑戦していきましょう。」