AlmaLinux9のEC2にTeraTermから接続できない場合の対処方法

はやし
2023-11-13
2023-11-13

thum_aws

はじめに

最近サーバに触れることがなく、今回初めてAlmaLinux9を使ってみたのですが、EC2インスタンスを起動して、TeraTermからSSH接続しようとしたところ、なぜか接続できない・・・

結論から言えば、AlmaLinux9では、RSA/SHA1がデフォルトで無効化されていて、且つ利用しているTeraTermのバージョンが古く、RSA/SHA2に対応していなかったことが原因でした。(要は使ってるTeraTermが古かったということ)

理由が分かれば簡単なことだったんですが、小一時間ぐらい格闘したので、備忘録として残しておきます。。

何が起きた?

今回使ったOSはAlmaLinux9公式のAMIです。

alma9ssh000

こちらを使って、EC2インスタンスを起動しました。

で、いつものようにTeraTermを使ってSSH接続しようとしたところ、

alma9ssh001

あれ?いつまで経っても「接続中…」から進まない・・・そしてタイムアウト・・・

ん?ひょっとしてセキュリティグループで許可されていないのかな?と思って確認するも、ちゃんと開いてる。

ここですぐさま、「AlmaLinux9 Teraterm SSH 接続できない」といったワードでググっていれば即解決したんですが、ある意味エンジニア的な悪い癖?で、自分で何とかしてやろう的な感じで沼に嵌っていくことに・・・

問題の切り分けとして、

  • インスタンスの再作成 x 3
  • 別のキーペアを使ってのインスタンスの再作成 x 2
  • セキュリティグループの再設定 x 3
  • 別のAlmaLinux9 AMIを利用

など、色々格闘したのですが、繋がりません。

とここまで、小一時間程格闘して、前述のようなキーワードでググってみたところ、沢山の情報が・・・

どうやら、AlmaLinux9では、デフォルトで許可される暗号化方式が変わった上に、私が利用しているTeraTermではその暗号化方式(RSA/SHA2)に対応していないことが原因で接続できなかったようです。

ちなみに、私が利用していたTeraTermのバージョンは4.99でした。

alma9ssh002

更に調べてみると、最近TeraTermの5.0系がリリースされ、そちらではRSA/SHA2に対応したそうな。(併せて4系の最新である4.107もリリースされ、こちらでも対応した模様)

ということで、早速にTeraTerm5.0をインストールして、試してみました。

(インストール方法は割愛)

接続・・・

alma9ssh004

alma9ssh005

おぉ!繋がった!!

ということで、解決です。

ちなみに、サーバ側の設定でRSA/SHA1を許可して、古いTeraTermで接続することもできますが、わざわざセキュリティレベルを落とすことしたくないのでやめておきますが、備忘録がてら手順は残しておきます。

(付録) AlmaLinux9でRSA/SHA1を有効にする

AlmaLinux9の場合は、以下のコマンドを実行することで、SHA1を有効化できます。

※この手順自体はRedHat9の公式マニュアルにも記載されていました。

[root@ip-172-31-8-240 ~]# update-crypto-policies --show ←現在の暗号化ポリシーを確認
DEFAULT
[root@ip-172-31-8-240 ~]# update-crypto-policies --set DEFAULT:SHA1 ←デフォルトの暗号化ポリシーを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.
[root@ip-172-31-8-240 ~]# update-crypto-policies --show ←変更されていることを確認
DEFAULT:SHA1
[root@ip-172-31-8-240 ~]# reboot ←再起動して設定を有効にする

起動したら、古いTeraTerm4.99で接続してみます。

alma9ssh006

無事に接続することができました。

なお、暗号化ポリシーを変更する際に、前述のように「--set DEFAULT:SHA1」ではなく、「--set Legacy」と設定することでも、SHA1を有効化することができるようです。

ただしRedHat9の公式マニュアルには、以下のような記載があり、SSH接続だけであれば、Legacyは指定しない方が良さそうです。

alma9ssh007

まとめ

知っていればなんてことない事象でしたが、ここ最近サーバを触ってなかったこともあり、解決までに少し時間がかかってしまいました。

やっぱりちょくちょく触っていないと時代に取り残されるなぁと思った今日この頃です。

結構これで詰まる人も多いのではないかと思い、記事に残させてもらいました。

誰かの参考になれば幸いです。

追伸)

TeraTerm5.0はバグなのか、私の環境との相性が悪いのか、ちょいちょい落ちます・・・