この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
以前に EC2 を別の AWS アカウントに移行するブログを書きましたが、EC2 移行時にキーペアも一緒に移行したい場合もあると思います。そこで、今回はキーペアを移行する方法を紹介します。
移行準備
移行元アカウントでキーペアを作成します。
今回はキーペアのタイプは「RSA」、プライベートキーファイル形式は「.pem」とします。
移行手順
ローカル環境において、移行元アカウントで作成したキーペアのプライベートキー(.pem)からパブリックキーを作成します。
$ ssh-keygen -y -f test-transfer-keypair.pem > test-transfer-keypair.pub
ssh-keygen コマンド実行時にパーミッションに関する WARNING が出ることがあります。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'test-transfer-keypair.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "test-transfer-keypair.pem": bad permissions
WARNING への対処法としては、不要な読み取り権限を削除するために chmod コマンドで権限を変更します。
$ chmod 0600 test-transfer-keypair.pem
次に、移行先アカウントにおいて、EC2 のキーペア画面から「アクション」→「キーペアをインポート」を選択します。
先ほどローカルで作成したパブリックキーを選択して「インポート」します。
以上で移行は完了です。
EC2(Amazon Linux 2)を作成して SSH でログインできるか試してみます。
$ ssh ec2-user@xxx.xxx.xxx.xxx -i test-transfer-keypair.pem
xxx
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
4 package(s) needed for security, out of 16 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-10-0-0-129 ~]$
ログインできました!
最後に、ローカルで作成したパブリックキーは不要なので削除しておきましょう。
$ rm test-transfer-keypair.pub
まとめ
EC2 のキーペアを別の AWS アカウントに移行する方法を試してみました。キーペアを移行することで、複数の AWS アカウント環境の EC2 に同じキーペアを用いてログインすることができるようになります。