三類典型痛點
- 併發衝突:兩人附著同一 tmux 或 VNC 使用者,輸入插隊,建置與除錯爭同一快取目錄。
- 隱性延遲:跨國 RTT 加 VNC 編碼,點擊回饋常百毫秒級;純 SSH 較低延遲,圖形上 VNC 則 SLA 陡升。
- 權限與稽核:共享帳號下
sudo與憑證混用,鑰匙圈與剪貼簿成橫向通道。對照 佇列與檔案鎖 FAQ。
多工作階段 SSH 接力 vs 獨佔 VNC 對照表
| 維度 | tmux/screen 加 SSH 多工作階段接力 | 獨佔 VNC 桌面 |
|---|---|---|
| 工作階段搶占 | 同使用者多客戶端共用一前景,表現為爭窗格;命名工作階段可分流仍同 UID。 | 單操作員時衝突少;誤共享憑證則整屏被接管,風險顯性。 |
| 剪貼簿 | 終端內複製為主;ssh -R 轉剪貼簿少見,暴露較可控。 |
雙向剪貼簿易夾權杖;宜停用拖放或分帳號。 |
| 圖形需求 | 適合 CLI、無頭建置;GUI 另開 VNC/本機或慎用 X11。 | 原生 Xcode、Simulator;代價頻寬與編碼延遲。 |
| 憑證與 sudo | 分帳號+SSH 憑證(短 TTL);sudo 白名單並稽核。 |
GUI 提權易順手允許;共享帳應關無界 sudo 或改工單。 |
決策矩陣(if/then)
- 若以 Git、brew、無 UI xcodebuild 為主 則 SSH+tmux;VNC 僅除錯。
- 若要 Simulator/簽章精靈 則 預約獨佔 VNC,建置仍走 SSH。
- 若排隊超 SLA 或鎖飢餓 則 增節點、人機與 CI 分機。見 flock FAQ。
落地步驟與可抄設定
- SSH 保活:
~/.ssh/config設ServerAliveInterval 30、ServerAliveCountMax 4;關ForwardAgent,跳板另開。 - tmux:命名
handoff-build,attach -t接力;mouse on、detach-on-destroy off。 - 占座鎖:
flock -n /tmp/meshmac-seat.lock -c 'tmux new -As handoff',失敗換節點。 - sudo:
sudoers命令組授權;禁共享帳無界sudo su;稽核外送。 - VNC:對齊排班,結束登出;剪貼簿政策一頁紙。
可抄 ~/.ssh/config 片段:
Host mesh-shared-mac
HostName your-pool-host
User team_build
ForwardAgent no
ServerAliveInterval 30
ServerAliveCountMax 4
IdentitiesOnly yes
可抄 ~/.tmux.conf 片段:
set -g mouse on
set -g history-limit 50000
set -g detach-on-destroy off
setw -g aggressive-resize on
可引用基線
- Keepalive:約 30 秒減 NAT 斷線。
- 等鎖:互動 flock 常 30~120 秒非阻塞,與 CI 臨界區對齊。
- TTL:SSH 憑證小時到天級,定期清
ssh-agent。
權限隔離與延遲驗收清單
- □ 已拆 Unix 帳號(CI/互動)?
- □
sudo白名單與日誌外送? - □ 多附著有命名+占座鎖?
- □ VNC 獨佔預約並限剪貼簿?
- □ P95 延遲入 SLA(SSH/VNC 分列)?