RHEL9にログインする方法を考えてみた

この記事は公開されてから半年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

いろいろ調べてみた結果、RHEL9ではTeraTermからの直接ログインができない様子。(正確にはOpenSSH起因の問題ですが)
かといっていちいち踏み台サーバたてるのもお金かかってしまいますし管理も面倒です。

ということで、どうするか考えてみました。

目次

手順の概要

  1. EC2の起動
  2. マネージドインスタンス化
  3. セッションマネージャの確認
  4. その他

実行環境

RedHat9

手順

EC2の起動

直接ログインできないのならセッションマネージャを使えばいいじゃないということですね。
AWSですからできる方法ですが、まぁ一番最初に思いつく方法かと思います。
しかし残念ながら、現在のRHEL9AMI(ami-01bb8868a249be5ca)にはSSMAgentがインストールされていませんでした。

インストールするためにどこかからログインするのは本末転倒なので、ユーザーデータを使ってインストールしてみましょう。

高度な詳細の最下部に記載欄があります。コマンドは以下の通りです。
#!/bin/bash
sudo dnf install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm

残りのパラメータは要件に応じ、起動します。

RHEL9のEC2が起動しました。

マネージドインスタンス化

セッションマネージャを利用するため、上記で起動したEC2をマネージドインスタンス化します。
まずはIAMroleに「AmazonSSMManagedInstanceCore」を紐づけてください。
あとはSSMのページから「AWS-UpdateSSMAgent」を流すだけです。
詳細な手順は下記のページに記載しています。

Inspector v2がWindows対応したので触ってみました

セッションマネージャの確認


無事マネージドインスタンス化ができれば、セッションマネージャの選択画面に該当のEC2が出てきます。


無事ログインができました。rootへの昇格も問題ありません。

その他

Teratermで直接のログインができない原因は、Teratermが新しい暗号化ポリシーに対応していないことが原因です。
つまり古い暗号化ポリシーを利用するようにサーバ設定を変えてしまえばログインはできるはず……。
ということで、試してみました。
先ほどと同様に、ユーザーデータを利用します。
#!/bin/bash
sudo update-crypto-policies --set LEGACY

上記をユーザーデータに記載して起動したEC2にTeratermからのアクセスができました。
暗号化の強度は下がってしまうので、おすすめはできませんがどうしてもTeratermを利用したいときはこうするしかないのかなと思います。

まとめ

最新のOSということでなかなか苦労しそうですが、ログインについてはこのくらいの方法があれば問題ないかと思います。
もちろんTeratermの対応を待ってもいいですし他のソフトを使ってもいいですし踏み台をおいてもいいでしょう。要件に応じてご利用ください。

投稿者プロフィール

takeshige
そろそろGCPに手を出したい