✅ 前提
-
EC2インスタンスはLinux系(Amazon Linux, Ubuntuなど)
-
鍵ファイル(
.pem)はダウンロード済み -
Windows端末を使って接続しようとしている
🔧 方法別に対処を確認
① Windows PowerShell または コマンドプロンプト + OpenSSH
Windows 10/11 には OpenSSH クライアントが標準で入っています。
🔹 準備
-
鍵ファイルの保存場所を確認(例:
C:\Users\YourName\Downloads\your-key.pem) -
パーミッションを変更(これ重要!)
powershell
icacls "C:\Users\YourName\Downloads\your-key.pem" /inheritance:r icacls "C:\Users\YourName\Downloads\your-key.pem" /grant:r "%USERNAME%:R"ちなみにMacおよびLinuxの場合の権限エラーは以下のコマンドで修正できる。
chmod 400 your-key.pem
🔹 SSH接続コマンド
powershell
ssh -i "C:\Users\YourName\Downloads\your-key.pem" ec2-user@<パブリックIP>
② Windows用 SSHクライアント(例:PuTTY)を使う場合
PuTTYでは.pemが使えず、.ppk形式に変換する必要があります。
🔹 ステップ
-
PuTTYgen を起動
-
Conversions → Import key →
.pemを選択 -
「Save private key」で
.ppkファイルとして保存 -
PuTTY本体を起動し、次を設定:
-
Host Name:
ec2-user@<パブリックIP> -
Port:22
-
Connection > SSH > Auth:先ほど保存した
.ppkを指定
-
-
「Open」で接続
🔸 ユーザー名の例
| OS | SSHログインユーザー |
|---|---|
| Amazon Linux | ec2-user |
| Ubuntu | ubuntu |
| Debian | admin または debian |
| CentOS | centos |
| RHEL | ec2-user または root |
💥 よくあるエラーと対処法
| エラー | 原因 | 対処 |
|---|---|---|
| Permission denied (publickey) | キーが間違っている/ユーザー名ミス | .pem or .ppkが正しいか、ログインユーザー名を再確認 |
| Network error: Connection timed out(PuTTY) | セキュリティグループでポート22が開いてない | AWSコンソールでポート22が開いているか確認 |
| Server refused our key(PuTTY) | authorized_keysにキーがない | EC2に誤ったキーペアで作成された可能性あり |
🧭 最終手段:EC2 Instance Connect で入って修正
-
EC2コンソール → インスタンス選択 → [接続] → [EC2 Instance Connect] でWeb上から接続可能(Amazon Linux / Ubuntu)
-
ログイン後、
~/.ssh/authorized_keysに正しい公開鍵を貼り付けて再試行
💡 まとめ
-
PowerShell/OpenSSHなら
.pemをそのまま使える(ただし権限設定が必要) -
PuTTYを使う場合は
.ppkに変換が必要 -
エラーメッセージが重要:それで原因がわかることが多い