AlmaLinux 10 の sshd をポスト量子暗号に対応させる備忘録です.
いつからかは分かりませんが AlmaLinux 10 に ssh で接続すると,ログイン時に
** WARNING: connection is not using a post-quantum key exchange algorithm. ** This session may be vulnerable to "store now, decrypt later" attacks. ** The server may need to be upgraded. See https://openssh.com/pq.html
と表示されるようになったので,これを何とかする備忘録です.

この警告はなに?
参照先として指定されている
を見ると,OpenSSH 10.1 以降この警告を出すようにしたそうです.私の場合はメインマシンの ssh が 10.1 にアップデートされたことで表示されるようになったっぽい.
解決策は,
- 警告を無効化
- 接続先のサーバーをポスト量子暗号?(この呼び方で良いのかちょっと疑問)に対応
の2通りですが,警告無効化はあまり望ましいこととは言えないのでポスト量子暗号に対応する方向で検討することにしました.

対応方法
RedHat の記事

に従って
$ sudo dnf install crypto-policies-pq-preview crypto-policies-scripts $ sudo update-crypto-policies --set DEFAULT:TEST-PQ
のようにすることで警告が出なくなりました.この RedHat の記事には他にもポスト量子暗号を用いた証明書の作成等の解説もあります.

crypto-policies ってなに?
CentOS8 以降(AlmaLinux は CentOS系列)はシステム全体の暗号化を一括管理するようになったらしいのですが,この一括管理の仕組みを crypto-policies と言うそうです.

対応している暗号化が何かを調べる
知らなかったんですが,上の crypto-policies の記事によると,ssh 等で接続したときにどの暗号化に対応しているのか調べるには nmap を
$ nmap -p 22 ssh_server_address -Pn -sV --script ssh2-enum-algos.nse
のように使えば良いようです.
試しにポスト量子暗号に対応前後で表示がどのように変化しているか見てみると,
3,4c3,5 < | ssh2-enum-algos: < | kex_algorithms: (11) --- > | ssh2-enum-algos: > | kex_algorithms: (12) > | mlkem768x25519-sha256
のようになっていて,ポスト量子暗号に対応したSSH のプロトコル mlkem768x25519-sha256 が追加されていることが確認できました.

その他のOSの場合
実はこの警告文,AlmaLinux 9 でも出ています.で,調べてみると,AlmaLinux 9 の sshd は本稿執筆時点で ver 8.7p1 で,そもそもポスト量子暗号に対応していないものみたい(ポスト量子暗号に対応しているのは ver 9 以降です).
では,他のディストリビューションはどうなの? ということが疑問になりますが,少なくとも,
- Ubuntu 22.04.5 LTS (OpenSSH_8.9p1)
- Ubuntu 24.04 (OpenSSH_9.6p1)
- AlpineLinux 3.22.2 (OpenSSH_10.0p2)
は対応済みのようです(Ubuntu 22.04.5 の OpenSSH 8.9 は多分パッチが当たっているのだと思います.実際 nmap で確認するとポスト量子暗号に対応していることを確認できます).
逆に対応していないのは,
- DietPi v9.17.2 (Dropbear v2022.83)
でしたが,これは Debian 12 bookworm ベースなので,最新の Debian 13 Trixie ベースのものにアップグレードすれば良いのかもしれません.
仕方がないので,これら未対応のものについては毎回警告が表示されるのを我慢することに私の場合はしていますが,どうしても我慢できない場合は,クライアントの ~/.ssh/config に,
Match host unsafe.example.com
WarnWeakCrypto no
と設定すれば良いみたいです.

以上

