SIer だけど技術やりたいブログ

Tera Term で Rocky9/RHEL9 にログインできない

linux

この記事は Linux Advent Calendar 2022 の 7 日目の記事です。

起きた事象

Tera Term で Rocky9/RHEL9 に対して RSA 鍵で SSH 接続すると、ログインに失敗する。

Tera Term で Rocky9/RHEL9 に対して RSA 鍵で SSH 接続するとログインに失敗する

同じ RSA 鍵を利用してコマンドプロンプトから ssh コマンドを実行すると、ログインに成功する。

> ssh -i ec2.pem rocky@xx.xx.xx.xx
Last login: Wed Dec  7 04:59:38 2022 from xx.xx.xx.xx

なぜか?

Rocky9/RHEL9 は OpenSSH に 8.7p1 バージョンを採用しており、RSA/SHA-1 がデフォルトで非推奨になっている。
参考 Think IT OpenSSH、今後はRSA/SHA1をデフォルトで無効に

SSH クライアントは RSA/SHA-256 などの、より強度の高い方式を利用する必要があるが、2022/12/07 時点では Tera Term はこれらに対応していない(次のリリースの Tera Term 4.107 で対応されるっぽい)。
参考 Tera Term チケット#36109 rsa-sha2-256, rsa-sha2-512公開鍵アルゴリズムのサポート

そのため Tera Term で Rocky9/RHEL9 に対して RSA 鍵で SSH 接続すると、ログインに失敗する。 この事象は RHEL9/Rocky9/CentOS Stream9/Alma9 などに限らず、OpenSSH の新しめのバージョンを採用している Ubuntu 22.04 などでも発生する(はず)。

対処方法

  1. Tera Term の対応を待つ。

  2. Tera Term 以外のクライアントからログインする。

  3. どうしても Tera Term でログインしたい場合は、他のクライアントからログインしたあとに crypto-policies を DEFAULT:SHA1 に設定すれば、とりあえず動きそう(ただし、もろもろのセキュリティレベルが下がる)。
    参考 Red Hat Enterprise Linux 9 > 3.9. SHA-1 を再度有効に

$ sudo update-crypto-policies --set DEFAULT:SHA1
Setting system policy to DEFAULT:SHA1
Note: System-wide crypto policies are applied on application start-up.
It is recommended to restart the system for the change of policies
to fully take place.

$ sudo shutdown -r now

追記

Tera Term が対応したようす。