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 的排查清單處理;順手把防火牆和金鑰登入一起檢查一遍。