決策矩陣 · Git · 共享建置

2026年小團隊共享遠端 Mac:Git credential helper 分帳戶、多儲存庫併發拉取權杖輪替最小權限驗收清單

2026.04.20 Meshmac 約 6 分鐘

池化遠端 Mac 上,Git 事故多因憑證鍵位混淆併發寫入同一後端。下附 SSH/HTTPS/鑰匙圈對照、併發迴避、可抄設定與驗證步驟。延伸:跳板 SSH 憑證輪替節點密鑰最小權限worktree 併發矩陣

SSH/HTTPS/鑰匙圈對照

共用家目錄易混身分(401403)。下表選型;週期見 SSH 輪替

維度 SSH(憑證/金鑰) HTTPS + PAT + helper 鑰匙圈/檔案後端(macOS)
身分綁定 IdentityFile+短效 CA 憑證,易稽核。 PAT/OAuth,須對齊 SSO。 osxkeychain;多帳戶要分區或 useHttpPath
共享機建議 專用 Unix 使用者;限 Principal;勿混 ssh-add 一機器人一作用域;輪替視窗單獨驗收。 store 分檔 0440,避免無鎖同寫。
典型坑 過期憑證快取;ProxyJump 串錯。 PAT 權限過大;未灰度輪替。 同 host 多倉一鍵覆寫 → 開 useHttpPath

併發拉取與迴避

併行度受鎖與磁碟約束;細節見 worktree 矩陣

情境 風險 迴避策略
併行 fetch pack/refs 爭用、鎖衝突。 分目錄;裸庫串行 fetch;大倉淺複製。
併行 clone 同寫 helper。 預置 token 或串行 credential fill
輪替當夜 新舊權杖交錯。 雙寫視窗+探針通過再撤舊 PAT。

可執行設定片段

假設使用者 ci;密鑰分檔見 節點密鑰最小權限

HTTPS

[credential]
    helper = osxkeychain
    useHttpPath = true
[credential "https://github.com/org/"]
    username = ci-bot

[http]
    postBuffer = 524288000

SSH

Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_ci
    CertificateFile ~/.ssh/id_ed25519_ci-cert.pub
    IdentitiesOnly yes

非互動:GIT_TERMINAL_PROMPT=0BatchMode yes

驗證步驟

  1. 身分:ssh -T git@github.comgit ls-remote 與預期一致。
  2. 鑰匙圈:輪替後 printf "host=github.com\nprotocol=https\npath=org/repo\n\n" | git credential-osxkeychain erase,再 GIT_TERMINAL_PROMPT=0 git ls-remote origin
  3. 併發/權限:裸庫雙 fetch 無損;多倉抽樣無 401;PAT/Principal 最小化。

最小權限驗收

  • □ 自動化身分獨立使用者或 HOME;鑰匙圈分區。
  • □ HTTPS:useHttpPath 或等效路徑分流。
  • □ 輪替視窗+告警;GIT_TERMINAL_PROMPT=0;撤舊權杖後探針仍綠(參 節點密鑰)。

FAQ

FAQPage JSON-LD 有全文。摘要:useHttpPath;401 查 PAT/併發寫;混用須 url.insteadOf

下一步

憑證就緒後若要加節點/協作分流,公開頁免登入:套餐說明部落格

套餐免登入