今までマネジメントコンソール上で作ったものを手元に置いていたけど、普通に既存のキーペア使えた...。メモ。
- 利用可能な形式は以下の通り
- OpenSSH パブリックキー形式 (~/.ssh/authorized_keys の形式)
- Base64 でエンコードされた DER 形式
- SSH パブリックキーファイル形式 (RFC4716 で指定)
- ネットワーク&セキュリティ/キーペアでインポート可能
- CLI 経由での import/delete も可能
$ aws ec2 import-key-pair --key-name hoge01 --public-key-material "..........."
{
"KeyFingerprint": "55:fc:a0:84:ac:18:1a:20:e6:de:ee:e1:71:6b:5d:45",
"KeyName": "hoge02"
}
$ # あるいは以下のようにもできる
$ cat ~/.ssh/id_rsa.pub | xargs -0 aws ec2 import-key-pair --key-name hoge02 --public-key-material
{
"KeyFingerprint": "55:fc:a0:84:ac:18:1a:20:e6:de:ee:e1:71:6b:5d:45",
"KeyName": "hoge02"
}
$ # 新規作成は create-key-pair を使う
$ aws ec2 create-key-pair --key-name hoge03
{
"KeyFingerprint": "8e:eb:55:9d:ed:ee:6b:fb:b9:ab:3f:c7:29:60:91:5d:ca:37:c2:a3",
"KeyMaterial": "-----BEGIN RSA PRIVATE KEY-----
..........
-----END RSA PRIVATE KEY-----",
"KeyName": "hoge03"
}
$ # 一覧取得
$ aws ec2 describe-key-pairs
{
"KeyPairs": [
{
"KeyFingerprint": "55:fc:a0:84:ac:18:1a:20:e6:de:ee:e1:71:6b:5d:45",
"KeyName": "hoge01"
},
{
"KeyFingerprint": "55:fc:a0:84:ac:18:1a:20:e6:de:ee:e1:71:6b:5d:45",
"KeyName": "hoge02"
},
{
"KeyFingerprint": "8e:eb:55:9d:ed:ee:6b:fb:b9:ab:3f:c7:29:60:91:5d:ca:37:c2:a3",
"KeyName": "hoge03"
}
]
}
$ # 削除も以下のような形で可能
$ aws ec2 delete-key-pair --key-name hoge01
- 削除に関しては既存のインスタンスに影響はないが、Auto Scaling グループの起動設定で指定されているものを消してしまうとインスタンスの起動に失敗するので注意が必要 #
- private キーを紛失した場合もアクセス手段は残されている #
起動しているインスタンスからキーペアのパブリックキーを取得できる
情報ソース: インスタンスからキーペアのパブリックキーを取得する
[ec2-user@ip-172-31-89-247 ~]$ curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCIOKfNhAE51cD22VzMlyXOqu+39mfmR3ymJcEjttg2duh41gCfUMWJ/WbKlvv09keajQTJBmQlzauoneAuKLqKOCjjvS+2ORosM4JbMVvPlwU1/FZJTK7uPjCU+hoA3GAF2tSX6R0c77yruHQWnx5ByJC8QnG36Q82NdW9RFichvzDnnwEQl01GiTfnkIVQfwcOTMvDS+N0fvNWh8tKCeFmnXfIY5YWVfHQ6SdQBGRC4e0D/hzKZWRSy/Lin8vpajJNApj1tnBYN+J6T0Mi9GjVUGIvFM4kdaSu43G8rvUpmbj/82FT9HrmkCfCn9N/cRaFECZyiFuKdhllF0Xz/M1 hogehoge
- ほかにも色々な情報を取れる
- 詳細は インスタンスメタデータの取得 に載っている
Pinned Articles
About
ウェブ界隈でエンジニアとして労働活動に励んでいる @gomi_ningen 個人のブログです
Tags
JavaScript
PowerShell
kibana
elasticsearch
fluentd
nginx
イベント
五十嵐裕美
村川梨衣
logrotate
IoT
Scala
Java
C言語
iputils
ICMP
WUG
mastodon
Swift
AWS
Clock
Windows
アーキテクチャ
PoEAA
iOS
DeviceFarm
プログラミング言語
OS
StepFunctions
Lambda
Serverless
terraform
ポエム
RHEL
ネットワーク
GraphQL
CloudWatch
Linux
Coreutils
network
nc
telnet
LinuxKernel
fpinscala
ELB
IAM
AppSync
EFS
Gradle
english