1️⃣ はじめに:EC2キーペアとは?
AWS EC2インスタンスにSSH接続するためには、キーペア(.pemファイル)が必要です。
キーペアの役割
- 認証方式:パスワードではなく公開鍵暗号方式でセキュアに接続
- 用途:EC2インスタンスへのSSHログイン
- 再利用性:一度作成すれば複数のEC2インスタンスで使い回し可能
この記事で学べること
- ✅ AWSコンソールでのキーペア作成方法
- ✅ コマンドライン(AWS CLI)でのキーペア作成方法
- ✅ キーペアの管理とセキュリティのベストプラクティス
対象読者
- AWS初心者でEC2を初めて使う方
- キーペアの作成方法を知りたい方
- コマンドラインでの作成方法を学びたい方
2️⃣ キーペア作成の2つの方法
EC2キーペアの作成方法は2通りあります:
| 方法 | メリット | デメリット |
|---|---|---|
| AWSコンソール | 直感的で簡単 | 手動操作が必要 |
| AWS CLI | 自動化可能、スクリプト化できる | 初期設定が必要 |
どちらか一方で作成すればOKです。個人利用ならAWSコンソールが簡単、開発環境の構築や自動化を考えるならAWS CLIがおすすめです。
3️⃣ 方法1:AWSコンソールでキーペア作成
手順1:AWSコンソールにログイン
- AWSマネジメントコンソールにアクセス
- IAMユーザーまたはルートユーザーでログイン
手順2:EC2ダッシュボードを開く
- サービス検索で「EC2」を検索
- 「EC2」をクリックしてダッシュボードを開く
- 左サイドバーの「ネットワーク&セキュリティ」セクション
- 「キーペア」をクリック
手順3:キーペアを作成
「キーペアを作成」ボタンをクリック
設定項目を入力:
名前:
my-ec2-test-key※識別しやすい名前を付けましょう(自分の名前や社員番号を含めると管理しやすい)
キーペアのタイプ:
- RSA を選択(推奨)
プライベートキーファイル形式:
- .pem を選択
「キーペアを作成」ボタンをクリック
自動的に
.pemファイルがダウンロードされます- 例:
my-ec2-test-key.pem
- 例:
手順4:キーペアファイルを安全な場所に保存
Windowsの場合:
C:\Users\あなたのユーザー名\.ssh\my-ec2-test-key.pemMac/Linuxの場合:
mkdir -p ~/.ssh
mv ~/Downloads/my-ec2-test-key.pem ~/.ssh/
chmod 400 ~/.ssh/my-ec2-test-key.pem重要:
.pemファイルは再ダウンロードできません- 紛失した場合は新しいキーペアを作成する必要があります
- 適切な権限設定(
chmod 400)が必要です
4️⃣ 方法2:AWS CLIでキーペア作成
前提条件
- ✅ AWS CLIがインストール済み
- ✅ AWS CLIの初期設定(
aws configure)完了 - ✅ VSCodeなどのエディタ(推奨)
AWS CLIの設定がまだの方は、こちらの記事を参照してください。
手順1:VSCodeのターミナルを開く
VSCode起動:
# Windowsの場合
code .ターミナルを開く:
- ショートカット:
Ctrl + JまたはCtrl + @ - メニュー:表示 → ターミナル
手順2:キーペアを作成
aws ec2 create-key-pair \
--key-name my-ec2-key \
--query 'KeyMaterial' \
--output text > ~/.ssh/my-ec2-key.pemコマンドの説明:
--key-name my-ec2-key:キーペア名を指定--query 'KeyMaterial':秘密鍵の内容のみ抽出--output text:テキスト形式で出力> ~/.ssh/my-ec2-key.pem:ファイルに保存
Windowsの場合:
aws ec2 create-key-pair ^
--key-name my-ec2-key ^
--query "KeyMaterial" ^
--output text > %USERPROFILE%\.ssh\my-ec2-key.pem手順3:権限を設定
Mac/Linux:
chmod 400 ~/.ssh/my-ec2-key.pemWindows:
VSCodeのターミナルで以下を実行:
icacls %USERPROFILE%\.ssh\my-ec2-key.pem /inheritance:r
icacls %USERPROFILE%\.ssh\my-ec2-key.pem /grant:r "%USERNAME%:R"手順4:作成確認
aws ec2 describe-key-pairs --key-names my-ec2-key出力例:
{
"KeyPairs": [
{
"KeyPairId": "key-0123456789abcdef0",
"KeyFingerprint": "xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx",
"KeyName": "my-ec2-key",
"KeyType": "rsa",
"Tags": []
}
]
}
5️⃣ キーペアの使用方法
EC2インスタンスへのSSH接続
キーペアを使ってEC2インスタンスに接続する基本的なコマンド:
ssh -i ~/.ssh/my-ec2-key.pem ec2-user@<EC2のパブリックIP>例:
ssh -i ~/.ssh/my-ec2-key.pem ec2-user@54.123.45.67SSH接続時のトラブルシューティング
エラー:「Permission denied (publickey)」
原因:
- キーペアファイルの権限が適切でない
- キーペア名が間違っている
解決方法:
# 権限を再設定
chmod 400 ~/.ssh/my-ec2-key.pem
# キーペア名を確認
aws ec2 describe-key-pairsエラー:「WARNING: UNPROTECTED PRIVATE KEY FILE!」
原因:
キーペアファイルの権限が緩すぎる(Windowsでよく発生)
解決方法(Windows):
icacls %USERPROFILE%\.ssh\my-ec2-key.pem /inheritance:r
icacls %USERPROFILE%\.ssh\my-ec2-key.pem /grant:r "%USERNAME%:R"
6️⃣ キーペア管理のベストプラクティス
セキュリティ対策
1. 適切な保管場所
推奨:~/.ssh/ ディレクトリ
非推奨:デスクトップやダウンロードフォルダ2. 権限設定
# 所有者のみ読み取り可能(必須)
chmod 400 ~/.ssh/my-ec2-key.pem3. バックアップ
- クラウドストレージ(暗号化推奨)
- パスワード管理ツール(1Password、Bitwardenなど)
- 外部ストレージ(暗号化USB)
4. 命名規則
良い例:
- my-ec2-production-key
- john-dev-key-2026
- company-staging-key
悪い例:
- key.pem
- test.pem
- keypair.pem複数のキーペア管理
SSH config を活用:
~/.ssh/config ファイルを作成:
# 開発環境用
Host dev-ec2
HostName 54.123.45.67
User ec2-user
IdentityFile ~/.ssh/my-dev-key.pem
# 本番環境用
Host prod-ec2
HostName 54.234.56.78
User ec2-user
IdentityFile ~/.ssh/my-prod-key.pem接続が簡単に:
# 通常
ssh -i ~/.ssh/my-dev-key.pem ec2-user@54.123.45.67
# SSH config利用
ssh dev-ec2
7️⃣ キーペアの削除
不要なキーペアを削除する方法
AWSコンソール:
- EC2ダッシュボード → キーペア
- 削除したいキーペアを選択
- 「アクション」→「削除」
AWS CLI:
aws ec2 delete-key-pair --key-name my-ec2-key注意:
- 削除しても既存のEC2インスタンスには影響なし
- ただし、新しいインスタンスでは使用不可
- ローカルの
.pemファイルは自動削除されません(手動削除が必要)
8️⃣ まとめ
この記事では、AWS EC2キーペアの作成方法を2つ紹介しました。
学んだこと
- ✅ AWSコンソールでのキーペア作成:直感的で初心者向け
- ✅ AWS CLIでのキーペア作成:自動化・スクリプト化が可能
- ✅ キーペア管理のベストプラクティス:セキュリティと利便性のバランス
次のステップ
キーペアを作成したら、次は実際にEC2インスタンスを構築してみましょう:
- CloudFormationでEC2構築:インフラをコードで管理
- VSCode Remote-SSH:VSCodeからEC2に直接接続
- Session Manager:キーペア不要の安全な接続方法
参考リンク:
関連記事:
最終更新: 2026年1月11日
コメント