sshd_configを直したのに、なぜ反映されないのか
RHEL 8で使っていたSSHの確認手順を、そのままRHEL 9へ持ち込むと、設定を直したのに効かないことがあります。
原因の1つは、RHEL 9では/etc/ssh/sshd_config.d/*.confも設定の読み込み元になることです。メインのsshd_configだけを読んでも、実効値を確定できません。
この記事では設定を変更せず、どこから確認するかだけを整理します。
結論
次の順で確認します。
- OSのメジャーバージョンを確認する
- 設定の読み込み元を確認する
-
sshd -Tで実効設定を表示する -
Matchがあれば接続条件を与えて確認する - 暗号ポリシーの問題は、その後で切り分ける
1. OSとOpenSSHの版を控える
cat /etc/redhat-release
ssh -V
ssh -Vは標準エラー出力へ表示される実装があります。別のコマンドへパイプする場合は、表示先の違いに注意してください。
2. RHEL 9ではdrop-inも確認する
RHEL 9では、/etc/ssh/sshd_config.d/*.confがsshd_configより優先されます。
AlmaLinux 8.10 / 9.7の検証環境では次の違いがありました。
- 8.10:
/etc/ssh/sshd_config.d自体がなく、Include行もなかった - 9.7: ディレクトリがあり、
Include /etc/ssh/sshd_config.d/*.confがあった
これはAlmaLinux 2台での実測です。RHELやRocky Linuxの全環境が同じとは断定しません。
読み込み設定は、次のように確認できます。
sudo grep -n '^[[:space:]]*Include' /etc/ssh/sshd_config
sudo find /etc/ssh/sshd_config.d -maxdepth 1 -type f -name '*.conf' -print
2つ目のコマンドで「該当なし」になる場合と、ディレクトリ自体を読めない場合は別です。出力が0件だったという理由だけで、drop-inが存在しないと判断しないでください。
3. 最後は実効設定を見る
sudo /usr/sbin/sshd -T
たとえば、次の項目を確認します。
sudo /usr/sbin/sshd -T | grep -E '^(port|permitrootlogin|pubkeyauthentication|authorizedkeysfile|pubkeyacceptedalgorithms) '
ファイルに書いてある値と、sshdが採用する値を分けて考えるのがポイントです。
4. Matchがあれば接続条件を与える
Match UserやMatch Addressを使っている場合、条件なしのsshd -Tだけでは、対象接続の値を表せないことがあります。
次は例です。alice、server.example、192.0.2.10を対象接続の実値へ置き換えます。
sudo /usr/sbin/sshd -T -C user=alice,host=server.example,addr=192.0.2.10
この-C形式は、既存のAlmaLinux 8.10 / 9.7検証ログで受理され、実効設定が出力されることを確認済みです。
5. 暗号ポリシーは最後に切り分ける
update-crypto-policies --show
RHEL 9では、DEFAULTポリシーでもSHA-1署名が制限されます。一方、RHEL 8と9で同じDEFAULTと表示されても、中身が同じとは限りません。
ただし、接続できないからといって、すぐにSHA-1を再有効化したりLEGACYへ下げたりしないでください。システム全体の暗号強度に影響します。
確認の順番は次です。
- 接続先とポート
- ユーザーと鍵
- 実効設定
- サーバーログ
- 使用アルゴリズム
- 暗号ポリシー
SCPの失敗はSSH接続失敗とは限らない
RHEL 9ではscpが既定でSFTPを使います。旧サーバーや機器との組み合わせでは、SSHログインはできるのにファイル転送だけ失敗する場合があります。
旧SCPを強制する-Oは互換性確認の手段ですが、恒久対応として安易に配布しません。相手側がSFTPへ対応できるかを先に確認します。
範囲と限界
- RHELの仕様はRed Hat公式資料で確認しました
- 実測したのはAlmaLinux 8.10 / 9.7です
- RHEL / Rocky Linuxの実機では確認していません
- 本文のコマンドは読み取り確認です。設定変更や
sshd再起動は含めていません
公式資料:
9項目をまとめた図解について
SSH以外にも、NetworkManager、systemd、cgroup、journal、firewalld、SELinuxについて、8と9で「見る場所が変わるところ」を図にまとめました。
