收集並核對主機指紋
首次連線前先收集 ED25519 主機公開金鑰,計算指紋後與交付資料核對。未完成核對前,切勿直接忽略警告。
ZoneMini 提供獨享實體主機,而非虛擬機。你可以使用 SSH 執行建置指令,透過 macOS 螢幕共享處理圖形介面工作,或將固定節點註冊為 CI Runner。請先核對連線資料,再選擇入口,切勿在聊天記錄或管線日誌中暴露憑證。
三種方式可以並存。日常自動化優先使用 SSH 或 Runner;只有需要查看 Xcode 介面、調整系統設定或進行圖形化診斷時,才開啟螢幕共享。
用於拉取儲存庫、安裝相依套件、執行測試、執行 Xcode 命令列建置、查看日誌、同步產物與檢查磁碟。穩定的腳本應使用金鑰驗證,並將節點別名寫入本機 SSH 設定。
用於查看 Xcode 專案、進行圖形化除錯、檢查鑰匙圈存取權限、調整顯示設定與確認封存結果。工作結束時應鎖定工作階段,切勿將敏感資訊留在桌面或剪貼簿。
將節點註冊至現有 CI 系統後,可以依儲存庫、分支或工作類型分配標籤。Runner 使用獨立工作目錄與受限權杖,快取和建置產物應設定明確的清理規則。
連線失敗通常不是主機故障,而是節點位址、使用者名稱、網路策略或訂單狀態未對齊。依照以下順序檢查,可避免反覆嘗試。
登入控制台查看實例是否已交付,並確認目前訂單對應的機型、節點與租用期間。連線資料應逐項對應至該實例。
複製控制台提供的主機位址,切勿沿用舊工單、舊腳本或團隊聊天記錄中的位址。多節點團隊應為位址加上用途標籤。
SSH 使用者名稱與圖形工作階段使用者名稱可能分別用於不同入口。不要猜測預設使用者名稱,也不要在腳本中硬編碼臨時密碼。
臨時憑證僅供首次登入使用。成功登入後立即更新,並將新憑證儲存在團隊核准的密碼管理流程中。
確認目前網路允許目標連接埠對外連線。企業網路、代理伺服器與安全軟體可能限制 SSH 或圖形連線,應先與網路管理員確認。
登錄節點、用途、負責人、主機指紋與憑證輪換時間。首次連線後不要忽略主機指紋變更警告。
以下指令使用預留位置,不包含真實節點位址或憑證。請將預留位置替換為控制台提供的資訊,並在可信任的網路環境中執行。
首次連線前先收集 ED25519 主機公開金鑰,計算指紋後與交付資料核對。未完成核對前,切勿直接忽略警告。
為 ZoneMini 節點建立專用金鑰組。私鑰保留在本機受控裝置上,再將公開金鑰寫入遠端授權清單。
在 SSH 設定中儲存主機位址、使用者名稱、金鑰路徑與工作階段保持參數,避免每次手動輸入或混用不同節點。
確認金鑰登入成功後,再更新臨時憑證。金鑰尚未驗證前,不要刪除唯一可用的登入方式。
ssh-keyscan -t ed25519 <node-address> > zonemini_hostkey
ssh-keygen -lf zonemini_hostkey
ssh-keygen -t ed25519 -f ~/.ssh/zonemini_ed25519
ssh-copy-id -i ~/.ssh/zonemini_ed25519.pub <user>@<node-address>
ssh -i ~/.ssh/zonemini_ed25519 <user>@<node-address>
Host zonemini-build
HostName <node-address>
User <user>
IdentityFile ~/.ssh/zonemini_ed25519
ServerAliveInterval 30
ServerAliveCountMax 3
螢幕共享適合 Xcode 圖形化除錯、核對系統設定與檢查封存結果。建置腳本、日誌收集與批次工作仍建議透過 SSH 完成。
在 macOS Finder 中選擇「前往」與「連接伺服器」,輸入交付資料中的伺服器位址,再使用授權使用者名稱與憑證進入工作階段。
vnc://<node-address>
使用 Finder 的連接伺服器入口,切勿透過來源不明的捷徑儲存憑證。
核對使用者名稱與節點位址後輸入憑證。多人協作時不要共用同一組長期登入資訊。
網路不穩時先降低解析度或色彩品質。高解析度桌面會增加傳輸量與輸入延遲。
不要複製私鑰、完整權杖或明文密碼。跨工作階段貼上前,先確認目標視窗與目前使用者。
關閉用戶端不一定等於離開桌面。工作完成後鎖定工作階段,並關閉不再需要的敏感視窗。
Windows 或 Linux 工作站需要準備相容的圖形連線工具。不同用戶端在快速鍵、剪貼簿、色彩、縮放與多螢幕支援方面可能有所差異,應先用非敏感工作進行驗證。
選擇支援目標連線通訊協定、加密傳輸與自訂解析度的用戶端。安裝來源應經團隊審核,並保持版本更新。
先驗證 DNS、路由與目標連接埠,再測試圖形工作階段。公司代理伺服器、出口防火牆與無線網路切換都可能造成工作階段中斷。
先使用單一螢幕與中等解析度完成驗證,再逐步增加畫面尺寸。出現黑畫面或畫面裁切時,回到較低解析度重新建立工作階段。
能穩定輸入、清楚閱讀日誌、正確對應常用快速鍵,並安全結束工作階段,才適合納入日常流程。若工作完全可以腳本化,優先使用 SSH 或 CI Runner。
Runner 應使用獨立帳戶、獨立工作目錄與受限權杖。先完成一條最小測試管線,再加入簽署建置、快取與封存步驟。
將原始碼、相依套件快取、建置中間檔案與最終產物分開,方便設定清理策略及排查磁碟用量。
權杖僅授權目標儲存庫與必要操作。不要重複使用個人存取權杖,也不要將權杖寫入儲存庫或建置輸出。
依 Xcode 版本、專案類型、機型或工作負載設定標籤,避免不相容工作被排程至錯誤環境。
先執行相依套件檢查與單元測試,再進行封存。失敗時保留必要日誌,不要無條件上傳整個使用者目錄。
確認產物已進入目標儲存空間後,刪除臨時憑證、臨時鑰匙圈、過期快取與不再需要的建置目錄。
set -euo pipefail
WORK_DIR="$HOME/ci-work/project"
RESULT_DIR="$HOME/ci-results"
mkdir -p "$WORK_DIR" "$RESULT_DIR"
cd "$WORK_DIR"
git fetch --prune
git checkout "$CI_COMMIT_REF"
xcodebuild \
-scheme "$CI_SCHEME" \
-destination "generic/platform=iOS" \
test
xcodebuild \
-scheme "$CI_SCHEME" \
-archivePath "$RESULT_DIR/App.xcarchive" \
archive
find "$WORK_DIR" -name "*.tmp" -delete
權限應有負責人、用途與到期時間。長期無人管理的共用帳戶、儲存庫權杖與暫存檔案,會讓固定建置環境逐漸失去可稽核性。
每位維護人員使用獨立金鑰。成員離開專案時移除對應公開金鑰,不影響其他人的存取權。
需要共用環境時,也應區分個人登入與自動化帳戶。不要讓 Runner 使用管理員的日常帳戶。
為儲存庫權杖、Runner 註冊權杖與臨時存取憑證設定輪換記錄,及時刪除失效權杖。
建置工作只取得所需的儲存庫與分支權限。上傳產物與讀取原始碼可以使用不同憑證。
離開桌面前鎖定工作階段,關閉含有敏感內容的視窗,並清除不再需要的剪貼簿內容。
工作結束後刪除臨時私鑰、一次性權杖、臨時鑰匙圈與不再使用的授權檔案。
不要連續更換密碼、位址與用戶端碰運氣。先記錄錯誤類型、發生時間、本機網路、節點與入口,再執行對應檢查。
| 現象 | 先檢查 | 可執行操作 | 提交支援時附上 |
|---|---|---|---|
| 連線逾時 | 節點位址、本機網路、出口規則、目標連接埠 | 切換至可信任網路;測試連接埠連通性;確認未使用舊位址 | 發生時間、節點、用戶端網路類型、去識別化探測結果 |
| 驗證失敗 | 使用者名稱、金鑰路徑、檔案權限、憑證是否已更新 | 使用詳細 SSH 日誌找出選用的金鑰;核對授權公開金鑰 | 錯誤行、使用者名稱、金鑰指紋,不附私鑰或完整密碼 |
| 主機指紋變更 | 是否更換節點位址、重建實例或修改本機別名 | 停止連線;從控制台重新核對指紋;確認後再更新記錄 | 節點、舊指紋、新指紋與首次發現時間 |
| 圖形工作階段黑畫面 | 工作階段是否已鎖定、顯示解析度、用戶端相容性 | 降低解析度;重新建立工作階段;透過 SSH 檢查系統狀態 | 用戶端系統、用戶端版本、顯示設定與去識別化截圖 |
| 解析度異常 | 用戶端縮放、多螢幕模式、視窗尺寸 | 退回單一螢幕與中等解析度,再逐項還原設定 | 預期解析度、實際解析度、縮放比例與用戶端類型 |
| 工作階段頻繁中斷 | 無線網路切換、代理伺服器、閒置策略、連線抖動 | 使用穩定網路;為 SSH 設定保持連線;將長時間工作放入持久工作階段 | 中斷頻率、持續時間、網路變化與相關日誌片段 |
nc -vz <node-address> 22
route -n get <node-address>
ssh -vvv zonemini-build 2>&1 | tee ssh-debug.log
請提供訂單編號、ZoneMini M4 Core / ZoneMini M4 Plus / ZoneMini M4 Pro 其中一款、節點、發生時間、連線方式、重現步驟、預期結果與去識別化日誌。不要上傳憑證私鑰、儲存庫權杖或完整密碼。
準備好用途、並行工作數、所需記憶體、目標節點與租用期間。現有訂單可透過控制台查看連線資料;設定問題可先查閱說明中心。