キーペアを別のAWSアカウントに移行する方法

EC2 のキーペアを別の AWS アカウントに移行する方法を紹介します。
2021.09.02

この記事は公開されてから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 に同じキーペアを用いてログインすることができるようになります。

参考

Amazon EC2 のキーペアと Linux インスタンス