こんにちは、2023年12月に入社し、現在研修中の篠原です。
研修では配属前に過去に実際にあった案件・対応をモデルに作成された模擬案件を実施します。
今回は模擬案件中に起こったEC2インスタンスへのSSH接続不可となった事象についてまとめてみました。
利用環境
ターミナル:Tera Term
キーペア:RSA暗号方式、ファイル形式 .pem(OpenSSH で使用するファイル形式)
AMI:Amazon Linux 2023 (al2023-ami-2023.3.20240117.0-kernel-6.1-x86_64 / ami-0076451230a62ad66)
(以降、Amazon Linux 2023 = AL2023 とする)
OpenSSH バージョン:OpenSSH_8.7p1
事象
- インスタンス払い出し後、SSH接続確認を実施(問題なくSSH接続できることを確認)
- 顧客へリソースおよび認証情報を引き渡す
- 顧客よりインスタンスにSSH接続ができない旨の連絡あり!!
調査
以下を確認してみる。
- セキュリティグループの設定
必要なポートおよびIPアドレスが設定されていることを確認 - ネットワークACLの設定
サブネットのネットワークACL(Network Access Control List)で通信がブロックがないか確認 - ルートテーブルの設定
ルーティングに問題がないか確認 - インスタンスの状態認
稼働状態でありステータスチェックも問題なし - キーペアの確認
引き渡したキーペアとインスタンスに関連付けられたものと同一か確認
とくに問題なさそうでした。。。なぜ?
原因
その他に原因となることがないか調査したところ、
原因はクライアントで使用している Tera Team のホストキーアルゴリズムが AL2023 サーバーに対応していなかったためでした。
AL2023 サーバーに接続する際はクライアントは ssh-ed25519 または ecdsa-sha2-nistp256 ホストキーアルゴリズムをサポートする必要があるようです。
AWSのAL2023 のユーザガイドに記載がありました。
以下原文から抜粋
Amazon Linux 2023 (AL2023) には、従来の ssh-rsa ホストキーアルゴリズムを無効にして生成するホストキーの数を減らすデフォルト設定が含まれています。クライアントは ssh-ed25519 または ecdsa-sha2-nistp256 ホストキーアルゴリズムをサポートする必要があります。
接続できなったのは Tera Team のバージョンが古く(v4.106) 、ホストキーアルゴリズムに ssh-rsa が含まれており、 AL2023 サーバーでは無効化されているためでした。
Tera Team 起動 >「設定」>「SSH...」
対応
対応としては以下の 4つのいずれかで解消できます。
個人的に 1 か 2 がいいかなと思います。ssh-rsa の有効化は OpenSSH でも推奨されていない設定のようであるため、1、2 の対応が困難であるときの一時的な回避策として 3 か 4 を実施かなといったところでとらえています。
1. Tera Teamのバージョンを上げる
今回は「v4.108」「v5.1」バージョンを利用することでSSH接続ができることを確認しました。
Github の TeraTermProject よりダウンロードできます。
ダウンロードし、再インストールすればバージョンの更新ができます。
2. キーペアを ED25519 暗号方式で作成する
キーペア作成時に ED25519 暗号方式を選択し、AL2023 サーバー起動時に対象のキーペアを選択すればOKです。
3. AL2023 サーバーの暗号化ポリシーを変更する(ssh-rsa の有効化)
AWSのAL2023 のユーザガイドに記載のある以下を実行し、
システム暗号化ポリシーを LEGACY に変更する。
インスタンスの ssh-rsa サポートを再度有効にします。そのためには、以下のコマンドで LEGACY システム暗号ポリシーを有効にします。
$ sudo dnf install crypto-policies-scripts
$ sudo update-crypto-policies --set LEGACY
元は DEFAULT システム暗号ポリシーのため、戻すときは --set で DEFAULT を指定すればOK
4. AL2023 サーバーの起動時に RSA 暗号方式のキーペアを許可する
AWSのAL2023 のユーザガイドに記載のある以下を実行し、 cloud-config を設定。
cloud-config
ssh_genkeytypes:
- ed25519
- ecdsa
- rsa
まとめ
インスタンスへの接続はセッションマネージャー接続を利用することが最近では多く、今回は案件要件としてSSH接続できるサーバを提供することとなり本事象に遭遇しました。 それぞれのローカル環境の違いで発生する事象であり原因の特定に時間がかかりましたが、いい勉強となりました。
篠原 佑弥
インターナルエデュケーション課研修中
ジム通い検討中