✅ 前提
-
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
に変換が必要 -
エラーメッセージが重要:それで原因がわかることが多い