架構選型對比表
Jump Host把所有對遠端 Mac 的 SSH 先收斂到單一(或少數)入口,再在內網跳轉;直連則每台節點各自對外(或對零信任網路)開放 SSH。下表協助技術負責人快速對齊團隊規模與合規需求。
| 維度 | Jump Host 統一入口 | 節點直連(+防火牆/零信任) |
|---|---|---|
| 暴露面 | 僅跳躍機對外,內部 Mac 可不公網開 22 | 每台需管理來源 IP/服務帳號或依賴疊層(如 Tailscale) |
| 稽核/日誌 | 集中 session 轉發與登入紀錄較易一致 | 需在各節點或集中日誌匯總,否則碎片化 |
| 維運成本 | 多一層高可用與補丁責任 | 節點少時較省層級;節點一多規則易發散 |
| 適用情境 | 多人多節點、需統一吊銷與合規證明 | 節點≤2、已用零信任覆蓋且自動化強 |
帳戶與角色模型
共享遠端 Mac時,請避免「萬用管理員+共用帳號」。建議至少拆成:系統維運(sudo)、日常開發(無 sudo 或有限 sudo)、CI/Runner(僅構建與快取目錄)、唯讀診斷(logs/指標)。Jump Host 上可再用不同 AuthorizedPrincipals 或金鑰標註區分「僅能跳轉到構建池」與「可進維運段」。
與圖形協作相關的權限邊界可交叉參考 共享構建機 SSH/VNC 權限隔離 與 多節點祕密最小權限,避免 SSH 與自動化憑證混在同一 Keychain/同一金鑰。
憑證生成與分發步驟
實務上「憑證輪換」多指OpenSSH 使用者憑證(CA 簽發)或每用戶長期金鑰兩條路。尚未導入 CA 時,請至少做到:Ed25519、私鑰有 passphrase 或僅存 HSM/祕密庫、authorized_keys 每行註解持有人與到期日。
- 建立角色金鑰對:維運/開發/CI 分開;CI 金鑰僅下發到 Runner,不進成員筆電。
- Jump Host 先行:只佈建跳躍公鑰與
ProxyJump/ProxyCommand範本,成員不直接持有內網節點私鑰檔(可選)。 - 主機信任:首次部署用
ssh-keyscan或已知主機指紋台帳;進階啟用@cert-authority信任主機 CA,降低中間人風險。 - 若導入使用者 CA:以
ssh-keygen -s CA -I id -n principal -V +12w類指令簽發短期憑證,principal 對齊 Unix 帳號或角色別名。
輪換與吊銷流程
輪換不是「每年換一次密碼」的形式主義,而要對齊外洩窗口與人事異動。下表可作小團隊預設,再按合規加嚴。
| 憑證/金鑰類型 | 建議週期(小團隊基線) | 吊銷觸發 |
|---|---|---|
| 個人 SSH 長期金鑰 | 12~24 個月定期輪換;重大版本升級時順便做 | 裝置遺失、repo 外洩懷疑、成員離職當日 |
| CA 簽發短期使用者憑證 | TTL 7~30 天;到期自動失效 | 立即停簽+撤 CA/principal;Jump 上封鎖舊 serial(若使用) |
| CI/Runner 專用金鑰 | 90~180 天或流水線大改時 | Workflow 外洩、Runner 重裝、權限升級需求 |
| Jump Host 管理金鑰 | 6~12 個月;雙人覆核 | 任何疑似入侵;先換跳躍層再換內網 |
流程要點:永遠保留重疊視窗(新憑證可登入後再刪舊公鑰);離職先撤 Jump 再撤各 Mac;事件響應時優先縮短 TTL 或關閉對外 sshd 的來源白名單。
審計與最小權限
- 日誌:開啟
sshd適當等級(如VERBOSE與成功/失敗登入),匯到只增寫入的儲存;Jump Host 層保留轉發來源 IP 與 principal。 - 指令邊界:對 CI 帳號使用
command=限制、no-agent-forwarding、no-pty等選項(依實際需求取捨)。 - sudo:預設關閉;僅維運 break-glass,並記錄
sudo稽核。 - 與協作節奏對齊:多人並行構建時,權限模型可與 叢集權限與故障轉移 一文中的「誰能改哪台節點」敘述一起檢視。
FAQ
Q:遠端 Mac 一定要上 Jump Host 嗎?
不一定。對外暴露面小、節點少且已用零信任/專線覆蓋時,可採直連加嚴格金鑰與防火牆;一旦多人多節點、需統一稽核與吊銷,Jump Host 通常較省維運成本。
Q:SSH 用戶金鑰與 CA 簽發短期憑證該怎麼選?
無內建 CA 與自動化時,先以每用戶 Ed25519 金鑰+強制金鑰登入;具備簽署與集中目錄時,改採短期使用者憑證可縮短外洩窗口,輪換以 TTL 與吊銷為主。
Q:輪換時如何避免全隊同時斷線?
採雙金鑰或新舊憑證重疊視窗:先佈建新 authorized_keys 或新簽發憑證並驗證登入,再撤舊;Jump Host 與目標機分階段切換。
Q:分角色時 CI/自動化帳號要注意什麼?
CI 應使用專用 Unix 帳號與專用金鑰或機器憑證,限制指令與路徑,與真人開發者金鑰分離;祕密僅存 Runner 或祕密管理。