維運與稽核 2026 年 4 月 9 日

2026 雲端 Mac SSH MaxStartups 與依來源限流手冊:在共享 Apple Silicon 上擋握手風暴,又不把團隊鎖在門外

MacLogin 維運團隊 2026 年 4 月 9 日 約 12 分鐘閱讀

平台團隊用單一公網 IPv4 的租用 Apple Silicon 雲端 Mac承接數十名外包與自動化任務時,常被「連線被重置」工單吵醒——很多時候並非鏈路中斷,而是 sshd 准入控制調得過猛或形同虛設。本手冊結論:先量測並行連線尖峰,再為 MaxStartupsPerSourceMaxStartups 寫出明確數字目標,以 sudo sshd -t 驗證語法,並把回復設定雜湊與 CMDB 租約 ID 寫進同一張工單。下文提供指令對照表、示例基線(如 10:30:100 風格的 MaxStartups 曲線)、面向 macOS launchd 的九步變更流程、CI/NAT 注意事項,以及面向 MacLogin 香港、日本、韓國、新加坡與美國區域的常見問題。把限流與可觀測性綁在一起,才能在稽核面前拿出「有上限、有證據、可回復」的故事,而不是值班工程師憑感覺改兩行設定。

建議將限流策略與 SSH 保活與斷線排錯 搭配,避免閒置工作階段被誤判為連線風暴;與 共享 SSH 工作階段治理清單 一起做排班交接;再搭配 金鑰輪換與雙因子,讓暴力破解雜訊在抵達 sshd 上限之前就被身分層擋下。連線基礎請見 MacLogin 說明中心,機型與區域對照見 定價頁。若你剛接手一台「人人都 SSH 上去」的共享建置機,不要先抄網路上的極限收緊參數;先用一週視窗把 sshd 程序直方圖畫出來,再決定全域佇列與單 IP 公平性之間如何取捨。

在跨國協作或企業出口 NAT 情境下,還要意識到:辦公室閘道、雲端託管 Runner,以及工程師住家寬頻可能共用極少數公網位址。PerSource 上限若只按「人均一台筆電」估算,會在發版週把矩陣建置一次打掛。反過來,若只抬全域 MaxStartups 而不做依來源限制,攻擊者仍能用單一 IP 拉高未完成握手佇列,拖垮 CPU 與日誌管線。本文強調「先測量、再 Match、再全域預設」的分層寫法:把可信 CIDR 放進 Match Address 區塊單獨放寬,再讓預設區維持保守,如此合規團隊能讀懂註解意圖,而不是一團互相覆蓋的神秘數字。

誰需要在租用雲端 Mac 上寫清 MaxStartups 手冊

凡是一個公網 IPv4 同時承接人工操作與自動化流水線的前置建置主機,都值得把准入上限寫成維運資產。缺少書面目標時,常見兩種極端:攻擊者平行窮舉密碼直到 CPU 打滿,或平台工程師把單來源上限砍得過低,讓公司 NAT 後的 GitHub Actions 間歇性全軍覆沒。

  • 外包偏重的 iOS 團隊:發版週五同時開 sshscprsync,握手突發非常真實。
  • 資安審查:需要解釋「連線洪水下如何維持公平」——限流參數搭配日誌比口頭承諾更有說服力。
  • FinOps 負責人:未認證握手堆疊時,即便最終認證失敗也會拉高負載與 steal time,帳單與體驗雙輸。

先懷疑 MaxStartups,別急著怪 Wi-Fi 的症狀

  1. 營業時段隨機出現「遠端主機關閉連線」,往返延遲穩定——典型是伺服器在捨棄新的 TCP 接入,而舊工作階段仍正常。
  2. 負載均值尖刺sshd 居首,但已認證工作階段數並不多——握手風暴在燒 CPU。
  3. CI 綠紅交替:僅共享同一出口 IP 的任務失敗,筆電使用者卻正常——可能 PerSource 對 NAT 扇出估計不足。
  4. 稽核追問「平行 SSH 是否有上限」——合規要數字,不能只說「我們覺得很安全」。
警告:正在發生的重大事故中,若無第二人在旁盯 log show --predicate process == "sshd",請勿在線上調整這些指令;一處筆誤可能導致遠端存取完全不可用,只能依賴頻外管理或供應商主控台救場。

指令對照矩陣:每個旋鈕到底卡在哪一層

指令限制對象典型誤用建議搭配
MaxStartups全域未完成認證的 SSH 連線(握手佇列)只設全域上限、不做依 IP 公平PerSourceMaxStartups 與防火牆限速
PerSourceMaxStartups同一用戶端 IP 的平行握手數把辦公室桌面情境的預設值硬套在 CI NAT 上可信 CIDR 以 Match 單獨放寬
MaxSessions單一 TCP 連線上的多重工作階段數與「所有用戶端總工作階段數」混淆在內部 Wiki 寫明 ControlMaster 使用規範
MaxAuthTries單一連線上的密碼嘗試次數以為能擋住分散式噴射僅金鑰+集中日誌進 SIEM
指標:變更前蒐集營業日 7 天 的並行 sshd 程序 p95;全域 MaxStartups 建議至少保留 1.5× 該 p95 的 headroom。

下表面向約 10~25 名具名工程師 加輕量 CI;務必以貴司自有直方圖驗證。

畫像MaxStartupsPerSourceMaxStartupsMaxSessions摘要
純人工工作室10:30:60810緩和 VPN 重連帶來的握手突發
人工+ CI NAT20:50:2003220容納矩陣 Runner,同時懲罰單 IP 洪水
高安全收緊5:15:4046誤殺升高——需搭配堡壘跳轉

面向 MacLogin 雲端 Mac 的九步 rollout

  1. 快照:/etc/ssh/sshd_configsshd_config.d/*.conf 拷入設定庫,工單號 SSH-THROTTLE-2026
  2. 測量:營業日每 15 分鐘 取樣 ps -ax | grep sshd | wc -l 尖峰。
  3. 起草 Match:若已知 CI 出口 CIDR,在全域預設值之前Match Address 寫入較寬鬆的 PerSource。
  4. 編輯指令:增刪改 MaxStartups/PerSourceMaxStartups/MaxSessions;舊值以註解保留給稽核。
  5. 語法檢查:sudo sshd -t 結束碼須為 0
  6. 金絲雀工作階段:重載前保留一條備用已認證工作階段——永遠不要只開一扇 SSH 窗。
  7. 重載:在公告窗口執行 sudo launchctl kickstart -k system/com.openssh.sshd
  8. 浸泡:從筆電與 CI 兩個來源各發起 20 路平行指令碼連線,確認 TCP 握手階段無超過 3 秒 的異常掛起。
  9. 結單:附上變更前後片段、UTC 時間戳,以及指向已儲存 tarball 的一行回復命令。

會讓樸素 PerSource 上限失效的 CI、堡壘與 NAT 模式

GitHub 託管 Runner 的出口 IP 常變,但企業自架 Runner 若躲在單一公司 NAT 後,對外可能只有一個位址承載 50 路並行任務。若必須維持嚴格全域 MaxStartups,應讓自動化走專用堡壘並於該主機使用獨立 Match 區塊,或拆成兩台 MacLogin 租約使握手預算線性相加。

工程師若同時以 VNC 做 GUI 偵錯,請提醒:螢幕共享不能取代 SSH 准入日誌——SIEM 仍應解析 sshd 中斷原因,避免把圖形工作階段與 shell 工作階段的稽核混為一談。

常見問題

是否應在客戶入口展示每條 sshd 指令?建議以基礎設施即程式碼管理;客戶看到 SLA 與體驗指標即可,不必暴露每一行守護程序參數。

這能取代 WAF 嗎?不能——層次不同。SSH 限流保護 sshd;應用防火牆保護的是另一側的 HTTP 入口。

多久複審一次?每季一次,或在單次外包擴編超過 30% 人頭後必須覆盤。

調低 MaxStartups 能阻止密碼暴力破解嗎?能減輕連線風暴與資源耗盡,但不能取代金鑰登入、防火牆或類 fail2ban 策略;請與 MaxAuthTries 及經核准的帳戶鎖定策略組合使用。

PerSourceMaxStartups 太低會讓 CI 掛嗎?會——同一 NAT 後的平行矩陣可能共用一個來源 IP;收緊前請先測 Runner 子網的尖峰並行連線。

Apple Silicon 上 macOS 的 sshd 設定路徑?通常為 /etc/ssh/sshd_config/etc/ssh/sshd_config.d/;重載前務必 sudo sshd -t,並優先以 launchctl 管理 OpenSSH。

為何在 MacLogin 上以 Mac mini M4 做限流實驗更「可複現」

與部分 x86 筆電式主機相比,Apple Silicon Mac mini 的單核密碼學握手表現更穩定,調 MaxStartups 時畫出的曲線不會因睿頻抖動而充滿雜訊。MacLogin 在香港、東京、首爾、新加坡與美國都市圈的節點佈局,也便於把租約放在靠近 CI 出口的地區,縮小往返波動——否則團隊常把「PerSource 過緊導致的握手逾時」誤判成廣域網品質差。租用模式讓多區域複製同一份 sshd 範本、演練重載順序,以及在稽核材料裡證明「上限對應已編號工單」變得成本可控,而不是在某人桌下那台一次性筆電上臨時改設定。

若需要獨立環境做激進限流演練,可從 定價頁 加開節點,待指標連續 14 天穩定後再提升變更等級。

以多區域備援實例擴展 SSH 容量

依地理增加 Apple Silicon 主機,讓人工與 CI 不必爭搶同一個 MaxStartups 預算。