Edited at

EC2をAMIからリストアする際にキーペアをどうするか

More than 1 year has passed since last update.


AMIからリストア時に別のキーペアを選択するとどうなるか

そもそもの始まりは、東京リージョンで作成したEC2をAMI取得してバージニアリージョンで

新しく起動させる際に「キーペア」の選択画面で既存のキーがなかったのであれ?と思い調べた次第です。

ついでにキーペアを別のものを選択したら上書き?とかいろいろ疑問で調べました。


キーペアはリージョン別

まず調べてみたところ、キーペアはアカウント内共有ではなくリージョン別のようです。

明確にドキュメントに記載は見つかりませんでしたがリージョンあたりと記載があるので間違いないと思います。


https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-key-pairs.html

キーペアを作成する

Amazon EC2 が使用するキーは、2048-bit SSH-2 RSA キーです。リージョンあたり最大 5000 のキーペアを持つことができます。



検証してみる

image.png

東京リージョンにAmazonLinuxを起動させて、AMIを取得して3パターン試しました。

①AMIから東京リージョンで作成した別のキーペアを選択して起動

②AMIをバージニアにコピーして、バージニアリージョンに作成したキーペアを選択して起動

③AMIをバージニアにコピーして、キーペアの選択はなしで起動


①AMIから東京リージョンで作成した別のキーペアを選択して起動

まずは起動したEC2に接続してみます。

$ ssh -i ap-northeast-1-001.pem ec2-user@10.0.136.237

接続先のauthorized_keysを確認します。

$ cat .ssh/authorized_keys

ssh-rsa xxxxxxxx........ ap-northeast-1-001

$ md5sum .ssh/authorized_keys
f6128bdb94c2179c6f9183d40dedd908 .ssh/authorized_keys

次にAMIを取得して、先ほどとは別のキーペアを指定して新しいインスタンスを作成します。

(EC2の作成過程は省略します)

ssh -i ap-northeast-1-002.pem ec2-user@10.0.136.160

[ec2-user@ip-10-0-136-160 ~]$

では、先ほどのAMIの取得したEC2に選択したキーペア「ap-northeast-1-001.pem」でログインを試します。

ssh -i ap-northeast-1-001.pem ec2-user@10.0.136.160

[ec2-user@ip-10-0-136-160 ~]$

無時ログインできました。authorized_keysを見てみましょう。

$ cat .ssh/authorized_keys

ssh-rsa xxxxxxxx........ ap-northeast-1-001
ssh-rsa xxxxxxxx........ ap-northeast-1-002

$ md5sum .ssh/authorized_keys
c87931fc2d2949c6bb7304152c3d3381 .ssh/authorized_keys


②AMIをバージニアにコピーして、バージニアリージョンに作成したキーペアを選択して起動

AMIもキーペアと同じく、リージョン別になるためAMIはコピーしておき

コピーしたAMIからインスタンスを作成します。

$ ssh -i us-east-1.pem ec2-user@172.31.38.107

[ec2-user@ip-172-31-38-107 ~]$

$ cat .ssh/authorized_keys
ssh-rsa xxxxxxxx........ ap-northeast-1-001
ssh-rsa xxxxxxxx........ us-east-1

$ md5sum .ssh/authorized_keys
de006191497abe8ba53e88856c3fcda8 .ssh/authorized_keys


③AMIをバージニアにコピーして、キーペアの選択はなしで起動

東京リージョンでAMIを取得しキーペアはなしで起動します。

$ ssh -i ap-northeast-1-001.pem ec2-user@172.31.39.140

[ec2-user@ip-172-31-39-140 ~]$

$ cat .ssh/authorized_keys
ssh-rsa xxxxxxxx........ ap-northeast-1-001

$ md5sum .ssh/authorized_keys
f6128bdb94c2179c6f9183d40dedd908 .ssh/authorized_keys


まとめ

結論はキーペアを別のものを選択するとssh/authorized_keysに鍵が追記されていくでした。

ちゃんと読んだらドキュメントにも書いてありました。。。


インスタンスから Linux AMI を作成し、AMI を使用して別のリージョンまたはアカウントの新しいインスタンスを起動すると、新しいインスタンスには元のインスタンスからのパブリックキーが含まれます。これにより、元のインスタンスと同じプライベートキーファイルを使用して新しいインスタンスに接続できます。


勝手に自動で上書きかと思ってました。

まあ鍵なくしたらAMIからキーペアを作成して起動すれば問題ないですね!(鍵なくすなよ)

以上です。