こんにちは、ひでさんです。
今回のテーマはEC2インスタンス(Linux)のキーペア(SSHキー)交換についてです。
こんなことは無いでしょうか?
「既存のキーペアを使って、新しくEC2インスタンスを起動したが、やっぱり既存のキーペアではなく、別の新しいキーペアに交換したい。」
キーペアとは、暗号技術を使用した「パブリックキー」と「プライベートキー」の2つの鍵のことを指します。
EC2インスタンスでは、パブリックキーがインスタンスに保管され、対となるプライベートキーを使用してSSH接続することが一般的です。
で、このキーペアを新しくEC2インスタンスを作成したあとに別のキーペアに交換するにはどうしたらいいのか?
今回はその方法について詳しく解説していきたいと思います。
SSHキー交換の流れ
それではまずはSSHキー交換のざっくりした流れをご紹介します。
ちなみにこの流れは、EC2インスタンスがLinuxOSの場合となります。
Windowsの場合は異なりますのでご注意ください。
SSHキー交換のざっくりした流れ
- EC2インスタンスにSSHログインする
- 新しいキーペアを作成する
- 新しいパブリックキーのパーミッションを変更する
- 新しいプライベートキーをダウンロードする
- 新しいキーペアを使ってテストログインしてみる
そしてポイントとしては以下の3点となります。
- パブリックキーは「~/.ssh/authorized_keys」とする
- パブリックキーのパーミッションは「600」とする
- ~/.sshのパーミッションは「700」とする
実際にSSHキーを交換してみよう
それでは、具体的なSSHキー交換の方法をみていきましょう。
(1) 交換したいEC2インスタンスにSSHログインします
(2) 以下のコマンドにて新しいキーペアを作成します
1 2 3 |
cd ~/.ssh ssh-keygen -t rsa mv id_rsa.pub authorized_keys |
(3) 以下のコマンドにて新しく作成したパブリックキーのパーミッションを変更します
1 |
chmod 600 authorized_keys |
(4) 新しく作成したプライベートキーをダウンロードします
※以下のコマンドを実行し、中身をコピペしてPEM形式で保管してもOK
1 |
cat id_rsa |
(6) 新しいプライベートキーを使ってテストログインしてみます
ログインできれば成功です。
※上記でご紹介した方法はデフォルトユーザーec2-userが持つキーペアの交換であり、
~/.sshは既に「700」となっていたため、~/.sshのパーミッション変更作業はしておりませんが、新規ユーザーを作成し、新たにキーペアを作成する場合は~/.sshを以下のコマンドで「700」に変更してあげる必要があります。
1 |
chmod 700 ~/.ssh |
EC2マネジメントコンソールの表示は変わらないことに注意
実際にここまでやった方ですと、気づくかと思いますが、実は上記の方法だとEC2マネジメントコンソール上では「キー名」は変更されません。
そのため、インスタンス内ではキーペアは変更したけど、マネジメントコンソール上では変更されていないように見えてしまいます。この点は十分にご注意くださいね。
マネジメントコンソール上から変えたいという場合は、キーペアを作成した後、キーペアをマネジメントコンソール上でAWS側にインポートし、AMIから新しいインスタンスを作成し直すという流れになります。
その方法は別の機会にご紹介させていただきたいと思います。
まとめ
いかがでしたでしょうか?
今回はEC2のキーペア交換の方法について解説させていただきました。
ポイントとしてはLinuxにログインして、新しいSSHキーを作成し「~/.ssh/authorized_keys」のファイルと交換するということです。
authorized_keysのパーミッション設定を誤ってしまうとログインできなくなってしまいますので十分ご注意くださいね。
まずは一度どこかで手順を試してみることをお勧めします。
以上、ひでさんでした!