hero_picture
Cover Image for Amazon Linux 2023でRSAのSSH接続がデフォルトでできないようになっていた

Amazon Linux 2023でRSAのSSH接続がデフォルトでできないようになっていた

2024/04/25

こんにちは。EC2をこよなく愛する小國です。

Amazon Linux 2で使っていたキーペアでAmazon Linux 2023を立ち上げる機会があり、その際にSSH接続ができなくハマりました。

何番煎じか分かりませんが、その時の対処法のメモです。

TL;DR

以下、既にEC2を起動してしまった方向けの内容になります。

Amazon Linux 2023ではRSA/SHA1がデフォルトで使えない

Amazon Linux 2で使っていたキーペアでAmazon Linux 2023を立ち上げたところエラーとなりSSH接続できませんでした(鍵を使いまわしたのは理由があってのたまたまです)。

SSH接続できない

1Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

セッションマネージャーでログインし、/var/log/secureを見ると以下のエラーが。。。

1Apr 25 15:10:57 ip-10-1-0-213 sshd[3101]: userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]

対処方法

対処方法は以下があるかと思います。

  • RSA/SHA1を利用するように(非推奨)
  • その他のアルゴリズム(今回はキーペアで用意されているED25519)を利用する
  • セッションマネージャーを使って接続

セッションマネージャーを利用するのがいいかと思うのですが、今回は理由あってキーペアで用意されているED25519を利用してのSSH接続をしてみます。

ED25519でキーペアを作成

AWSコンソールでED25519のキーペアを作成します。

プライベートキーから「ssh-keygen -y -f」でパブリックキーを取得しauthorized_keysに登録

キーペアを作成するとプライベートキーがダウンロードされます。ダウンロードしたファイルから「ssh-keygen -y -f」でパブリックキーを取得します。なお、手元の環境はMacです。

1ssh-keygen -y -f /path_to_key_pair/my-key-pair.pem | pbcopy

パブリックキーを~/.ssh/authorized_keysに登録

セッションマネージャーでEC2に接続し、取得したパブリックキーを~/.ssh/authorized_keysに登録します。既にあるRSA/SHA1の鍵は必要なければ削除します。

ただ、この方法でパブリックキーを変更しても起動時に割り当てられたキーペアフィールドの値は変更されないようで、あらかじめキーペアを作成して起動がよいかと思います。

まとめ

Amazon Linux 2023はデフォルトでRSAのSSH接続ができないようになっています。今回はキーペアに用意されているED25519のSSH接続を行いましたが、今後は様々な恩恵を得られるセッションマネージャーを使っての接続が良いかと思います。

ということで、よいセッションマネージャーライフを!

参考サイト

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/describe-keys.html