目次
はじめに
2023年3月15日に一般公開されたAmazon Linux 2023。
今までは使う機会が無かったのですが、最近初めて立ち上げたらTera TermでSSHできなかったので、その件について書いてみます。
環境
Tera Termは「Tera Term 4.102」を使用しています。
私がディーネットに入社した2019年からずっとそのまま使用しています。
SSHに失敗
インスタンスを起動
普通にEC2インスタンスを起動します。
今回はAMIは「Amazon Linux 2023」を選択します。
VPC、セキュリティグループ、キーペアなどはいつも使用しているものがあるならば、それを使えばOKです。
TeraTermでSSH
インスタンスの起動が完了したら、ユーザ名は「ec2-user」、いつも通りの秘密鍵を選択して普通通りSSHしてみました。
認証に失敗してログインできませんでした。
なぜSSHに失敗するのか?
Amazon Linux 2023では、従来のssh-rsaアルゴリズム(RSA/SHA1)をデフォルトで無効化しているため、RSA鍵でSSHログインを行う時にRSA/SHA1を使用するTera Term 4系ではSSHログインに失敗します。
解決策
RSA/SHA1(ssh-rsa)の使用を有効化する
「セッションマネージャー」でEC2インスタンスに接続します。
AWSの公式ドキュメントの通り、下記のコマンドを実行して、RSA/SHA1の使用を有効化します。
sudo dnf install crypto-policies-scripts
sudo update-crypto-policies --set LEGACY
下記の確認コマンドを実行して「LEGACY」と出れば、RSA/SHA1の使用が有効化されたので、Tera Term 4系でもRSA鍵でログイン可能になります。
$ sudo update-crypto-policies --show
LEGACY
但し、「RSA/SHA1」は現在は脆弱性により非推奨とされているため、この方法は「RSA/SHA2(rsa-sha2-256、rsa-sha2-512)」が使えない場合の一時的な対応とされています。
Tera Term 5系を使用する
2023年10月16日にリリースされた、Tera Term 5系は、「RSA/SHA2(rsa-sha2-256、rsa-sha2-512)」に対応しているため、サーバ(EC2インスタンス)の設定はそのままで、今まで通りRSA鍵でSSH可能です。
Tera Term 5系は、Tera TermのGithubからダウンロードできます。
2024年9月4日現在では、Tera Term 5.2が最新版です。
https://github.com/TeraTermProject/teraterm/releases
インストールは、「Assets」から「teraterm-5.X.exe
」をダウンロード、起動し、ウィザードに従うだけなので、簡単にインストールできます。
なお、Tera Term 5系のインストールは、5系へのバージョンアップでは無く、新たに5系をインストールするため、今まで利用してきた4系との共存が可能です。
5系で不具合が生じた場合、今までの設定などを使い続けたい場合などには、時と場合に応じて4系と5系を使い分けることが可能です。
ed25519のキーペアを使用する
こちらは一からEC2インスタンスを立てる必要がありますが、新しい署名方式である「ed25519」のキーペアを使用すると、Tera Term 4系でもログイン可能になります。
「ed25519」のキーペアを持っていない場合は、まずは「ed25519」のキーペアを作成します。
EC2インスタンス起動時に、先程作成した「ed25519」のキーペアを選択します。
今回作成したEC2インストタンスは、Tera Term 4系でも「ed25519」のキーペアでログインすることが可能です。
但し、ローカルPCに秘密鍵用のフォルダを作成している場合は、分かりやすくそのフォルダに秘密鍵を設置し、Tera Termでのその秘密鍵を指定する必要があります。
特に、ログインマクロの作成時など、秘密鍵が間違っているといつまで経ってもEC2インスタンスにログインできなくなることになるので、注意が必要です。
今回のように予め「ed25519」のキーペアを作成しておき、「Amazon Linux 2023」を始めとした、「RSA/SHA1」がデフォルトで使用しない設定になっている新しいOSのインスタンスを起動する時は「ed25519」のキーペアを使用するようにすると便利です。
SSHログインに成功
余談ですが、SSHログイン時のメッセージは、MOTD(Message of the day)という仕組みにより表示されています。
多くの場合は/etc/motd
に記載したメッセージが表示されます。
Amazon Linux 2023の場合は特殊で、詳細な説明は省きますが、MOTDが使用するファイルのひとつ/usr/lib/motd.d/30-banner
の内容を表示する仕様になっています。
# ls -la /usr/lib/motd.d/
total 20
drwxr-xr-x. 2 root root 23 Jan 30 2023 .
dr-xr-xr-x. 26 root root 16384 Aug 16 02:16 ..
-rwxr-xr-x. 1 root root 232 Aug 14 05:05 30-banner
# cat /usr/lib/motd.d/30-banner
, #_
~\_ ####_ Amazon Linux 2023
~~ \_#####\
~~ \###|
~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
この鳥は/usr/lib/motd.d/30-banner
に住んでいました。
まとめ
Tera Term 5は、2023年10月16日に初版がリリースされ、それは2005年以来の18年ぶりのメジャー版のリリースとのことです。
Tera Term 5で追加された新機能のひとつに、今回紹介した「RSA/SHA2(rsa-sha2-256、rsa-sha2-512)」への対応が含まれています。
今回の件で、RSAもどんどんセキュリティ強化されているということを実感しました。
Amazon Linux 2023にSSHするためには、当然、Tera Term 5の利用か、ed25519鍵のキーペアを使用したサーバを立てることが推奨されますが、どうしてもTera Term 4を含む旧環境でログインしたい場合はサーバの設定を変更することで可能になります。
おわりに
今回はある検証のために初めてAmazon Linux 2023でEC2インスタンスを起動したからこそ気付くことができた発見でした。
Tera Termが18年ぶりに新たなメジャー版がリリースされたということにも驚きです。
さて、9月に入り少し涼しくなり、夏が終わり秋の気候になってきましたね。
弊社は、お盆に限らず一年中業務を行っている会社なので、夏季休暇の期間は固定では無く、社員個人が7月から9月までの間の営業日で任意の3日間取得するシステムになっています。
勿論、お盆に取得する方も居られれば、全く無関係な日に取得する方も居られます。
相も変わらず旅行が大好きな私は、今月下旬に予定している旅行の為に夏季休暇を使用するのですが、お盆前の祝日(山の日)を含む連休に繋げて通常の有休を1日取得し、途中までひとりで、途中から家族と合流し、山陰の方に行ってきました。
それで訪れた、島根県松江市の玉造温泉です。
温泉街で毎晩開催しており、安来節などの民謡のステージもあり面白かったです。
温泉街と言えば浴衣。
普段は夏祭りに浴衣で行く機会なんて中々無いので、それも含めて貴重な経験になったと思っています。
次回の私の技術ブログでは、今回Amazon Linux 2023を使うことになった検証のこと、それを書けたらと考えています。
では…。
ディーネットでは少数派の旅行が大好きなアウトドア派エンジニア。