OpenSSH 10.6 於 2026 年 10 月 6 日發布,距離 8 月 11 日的 10.5 不到兩個月。我們在上一篇裡拆過 10.4 和 10.5 裡可能把人鎖在門外的改動,這次的重點是一串安全修復,其中兩項會改變現有行為。

安全修復裡最值得注意的幾項

  • 壓縮側通道:關閉壓縮裡的 LZ77 字典編碼器,用來緩解學術研究「Crossing the Streams」(Bäumer 與 Brinkmann)提出的側通道洩露。代價是開了壓縮的連線壓縮效果變差。
  • 命令列使用者名稱注入:命令列上輸入的使用者名稱裡不再允許出現 $ 和 \,避免來自不可信來源的使用者名稱在 shell 上下文裡形成注入。如果你的指令碼把外部資料拼進 ssh user@host,這項修復就是為你準備的。
  • sftp 遞迴下載:更嚴格地校驗伺服器返回的路徑,防止惡意伺服器誘導遞迴複製寫到目標目錄之外。
  • GSSAPI:兩處修復,認證失敗那次的憑證不再被儲存。
  • authorized_keys 的 restrict:現在會正確地作用於隧道轉發。如果你給某把金鑰加了 restrict,又在伺服器上開著 PermitTunnel,以前那把金鑰仍可能申請隧道。
  • 其他:壓縮後的封包不得超過最大封包長度;Match 區塊裡取值為 none 的選項解析修復;ssh-keygen 處理憑證日期時的夏令時換算誤差(最多 1 小時)修復。

兩項可能影響現有用法的變化

  • 使用者名稱校驗更嚴:命令列裡帶 $ 或 \ 的使用者名稱會被拒絕。寫在設定檔裡的不受這一條影響,自動化指令碼要檢查。
  • 在缺少檔案描述符傳遞的平臺上,GatewayPorts 和 StreamLocalForwarding 會被強制關閉。常見 Linux 發行版不在此列。

新功能裡和伺服器運維相關的

混合後量子簽名演算法 ssh-mldsa44-ed25519 已啟用;sshd 新增 WarnWeakCrypto 選項,用來提示弱演算法;sftp 支援 mkdir -p;ChannelTimeout 接受小數秒;新增 AgentSocketPath 指定 agent 通訊端位置。

怎麼升級

大多數發行版不會馬上把整個 10.6 推給穩定版,而是把安全修復向後移植到現有版本,所以看發行版的安全公告,不要只看版本號。升級 sshd 前,保留一個已登入的會話、先 sshd -t 檢查設定,再重啟服務,避免把自己關在門外。SSH 的基礎用法見SSH 連線 Linux VPS(密碼與金鑰);萬一升級後連不上,照SSH 連不上 VPS 的排查清單處理;順手把防火牆和金鑰登入一起檢查一遍。