0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EC2キーペアをCLIで作るときに詰まりがちなポイント

0
Last updated at Posted at 2026-08-08

背景

EC2キーペアはコンソールからも作れますが、CLIで作る方が自動化・スクリプト化に向いています。CLIでの作成から権限設定、複数鍵の管理方法までをまとめます。

1. キーペア作成は1コマンド

aws ec2 create-key-pair \
  --key-name my-ec2-key \
  --query 'KeyMaterial' \
  --output text > ~/.ssh/my-ec2-key.pem

--query 'KeyMaterial'で秘密鍵の中身だけを抽出し、そのままファイルにリダイレクトしています。Windowsの場合はキャレット継続で書きます。

aws ec2 create-key-pair ^
  --key-name my-ec2-key ^
  --query "KeyMaterial" ^
  --output text > %USERPROFILE%\.ssh\my-ec2-key.pem

2. 権限設定はOSで方法が違う

Mac/Linuxはchmodで一発ですが、WindowsはicaclsでACLを明示的に絞る必要があります。

# Mac/Linux
chmod 400 ~/.ssh/my-ec2-key.pem
:: Windows
icacls %USERPROFILE%\.ssh\my-ec2-key.pem /inheritance:r
icacls %USERPROFILE%\.ssh\my-ec2-key.pem /grant:r "%USERNAME%:R"

Windowsでこれをやらないと、SSH接続時にWARNING: UNPROTECTED PRIVATE KEY FILE!という警告が出ます。

3. 複数キーペアはSSH configで管理する

環境ごとに鍵を使い分ける場合、~/.ssh/configにホストを定義しておくと、ssh -i ~/.ssh/xxx.pem ec2-user@...を毎回打たずに済みます。

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

4. 削除してもローカルの.pemは残る

aws ec2 delete-key-pair --key-name my-ec2-key

AWS側のキーペアを削除しても、既存EC2インスタンスへの接続には影響しません。ただし新規インスタンスでは使えなくなります。ローカルの.pemファイルは自動削除されないので、不要なら手動で消す必要があります。

まとめ

キーペアはコンソールでも作れますが、CLIの方が自動化に向いています。Windows特有の権限設定(icacls)と、SSH configでの複数鍵管理を押さえておくと運用が楽になります。

EC2キーペア作成の完全ガイド(ブログ)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?