This page explains what the SSH warning about “not using a post-quantum key exchange algorithm” means, how to verify the actually selected KEX from ssh -vv, and remember: seeing mlkem in the proposal list does not mean it was used.
Git Bash などから ssh でサーバーへ接続したとき、次のような WARNING が出ることがあります。
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.
このページでは、初心者の方でも混乱しないように「何が起きているのか」「今すぐ対応が必要なのか」「どこを見れば判断できるのか」を、手順つきでまとめます。
ざっくり言うと、SSH の“最初の握手”(鍵交換 / KEX)で 耐量子(Post-Quantum)方式が使われなかった、という注意です。
ここで言う「耐量子」は、将来とても強い量子コンピューターが普及したときに、過去の通信が復号される可能性(いま盗聴して保存し、将来解読する)に備える考え方です。
重要:この WARNING は「いま乗っ取られている」ではありません。多くの場合は、クライアント(あなたのPC側)とサーバー側で、耐量子KEXの共通対応がなく、従来方式にフォールバックしただけです。
mlkem... が見えても「使われた」とは限らないssh -vv のログで、次のように mlkem768x25519-sha256 が見えることがあります。
debug2: KEX algorithms: mlkem768x25519-sha256, sntrup761x25519-sha512, ...
これはたいていの場合、クライアントが「使える候補」を並べて提案している一覧です。ここに載っている=採用された、ではありません。
採用された方式は、ログの後半に出る次の形式の行で判断します。
kex: algorithm: XXXXX
クライアント(あなたのPC)側で実行します。
ssh -vv ユーザー名@サーバー名
(例)ホスト別名を使っているなら:
ssh -vv sakura-vps
出力の中から、次の行(または近い表現)を探します。
kex: algorithm: ...
kex: algorithm: mlkem768x25519-sha256 のように、mlkem を含む方式が採用されていれば、WARNING の趣旨は解消しています。curve25519-sha256 などが採用されている場合は、サーバー側が PQ に対応していない可能性が高く、WARNING が出ます。SSH 接続は、最初に「鍵交換(KEX)」で“この接続専用の共通鍵”を作ります。クライアントとサーバーが同じ方式に合意できない場合、両者が対応している別の方式に切り替えます(フォールバック)。
この WARNING は、耐量子方式が採用されなかったことを知らせるだけで、暗号自体が弱いと言っているわけではありません。現代の脅威モデルでは十分安全でも、「将来の量子」を想定するとリスクが残る、という位置づけです。
WARNING の本文に「server may need to be upgraded」とある通り、サーバー側が PQ KEX に対応していないと、クライアントだけ新しくしても解決しません。
サーバーにログインできる状態で、まず現状確認:
ssh -V
rpm -q openssh openssh-server
次に、OS の標準更新で上がる範囲は上げます(運用判断の上で実行してください)。
sudo dnf update -y openssh\*
sudo systemctl restart sshd
更新後、もう一度クライアントから ssh -vv を実行し、kex: algorithm: 行で採用KEXが変わったか確認します。
Git for Windows を更新すると、同梱の OpenSSH が更新され、PQ 対応が改善する場合があります。まずはバージョン確認:
ssh -V
見た目上の WARNING を抑制する方法があっても、根本原因(PQ KEX 未採用)が変わらなければ意味が薄いです。まずは「採用KEXを確認」→「更新できる範囲で更新」が王道です。
mlkem... がログに見えたからOK」と早合点する(提案一覧と採用は別)ssh -vv を実行するkex: algorithm: の行を探すmlkem... なら(少なくともこの警告の趣旨は)解消