AWS上のサーバに鍵を使用してログインできない。

2025-07-18 12:33


✅ 前提

  • EC2インスタンスはLinux系(Amazon Linux, Ubuntuなど)

  • 鍵ファイル(.pem)はダウンロード済み

  • Windows端末を使って接続しようとしている


🔧 方法別に対処を確認

Windows PowerShell または コマンドプロンプト + OpenSSH

Windows 10/11 には OpenSSH クライアントが標準で入っています。

🔹 準備

  1. 鍵ファイルの保存場所を確認(例:C:\Users\YourName\Downloads\your-key.pem

  2. パーミッションを変更(これ重要!)

    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形式に変換する必要があります。

🔹 ステップ

  1. PuTTYgen を起動

  2. Conversions → Import key.pem を選択

  3. 「Save private key」で .ppk ファイルとして保存

  4. PuTTY本体を起動し、次を設定:

    • Host Nameec2-user@<パブリックIP>

    • Port:22

    • Connection > SSH > Auth:先ほど保存した .ppk を指定

  5. 「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 に変換が必要

  • エラーメッセージが重要:それで原因がわかることが多い