安全连接工作单

把云端 Mac 接入你的开发终端、图形桌面与 CI 队列

ZoneMini 提供独享物理机、非虚拟机。你可以用 SSH 执行构建命令,通过 macOS 屏幕共享处理图形界面任务,或把固定节点注册为 CI Runner。先核对连接资料,再选择入口,不要在聊天记录或流水线日志中暴露凭据。

3 种入口
命令行、图形界面、自动化 Runner
5 个节点
新加坡、日本(东京)、韩国(首尔)、香港、美国东部
1 个原则
凭据按人、按用途、按最小权限分配
连接方式总览

先按任务选入口,不要把图形桌面当成唯一通道

三种方式可以并存。日常自动化优先 SSH 或 Runner;只有需要查看 Xcode 界面、调整系统设置或处理图形化诊断时,才打开屏幕共享。

LOW OVERHEAD

适合持续构建与远程维护

用于拉取仓库、安装依赖、运行测试、执行 Xcode 命令行构建、查看日志、同步产物与检查磁盘。稳定脚本应使用密钥认证,并把节点别名写入本地 SSH 配置。

  • 适合可脚本化、可审计的操作
  • 弱网络下比图形界面更容易恢复
  • 可配合会话保持工具运行长任务
首次连接准备

拿到连接资料后,先完成六项核对

连接失败经常不是主机故障,而是节点地址、用户名、网络策略或订单状态没有对齐。按下面顺序检查,可以避免反复试错。

  1. 01

    确认订单状态

    登录控制台查看实例是否已交付,并确认当前订单对应的机型、节点和租用周期。连接资料应与该实例逐项对应。

  2. 02

    核对节点地址

    复制控制台提供的主机地址,不要从旧工单、旧脚本或团队聊天记录中沿用地址。多节点团队应给地址增加用途标签。

  3. 03

    核对登录用户名

    SSH 用户名与图形会话用户名可能用于不同入口。不要猜测默认用户名,也不要在脚本中硬编码临时密码。

  4. 04

    准备临时凭据

    临时凭据只用于首次进入。成功登录后立即更新,并把新凭据保存在团队批准的密码管理流程中。

  5. 05

    检查本地网络

    确认当前网络允许目标端口出站。企业网络、代理与安全软件可能限制 SSH 或图形连接,应先与网络管理员核对。

  6. 06

    建立主机记录

    登记节点、用途、负责人、主机指纹和凭据轮换时间。首次连接后不要忽略主机指纹变化警告。

连接资料属于敏感信息

不要把临时凭据、SSH 私钥、仓库令牌或签名证书粘贴到公开问题、流水线完整日志和未加密文档中。提交支持请求时只提供脱敏后的命令输出。

进入控制台核对连接资料
SSH 连接步骤

先验证主机身份,再切换到密钥登录

以下命令使用示例变量,不包含真实节点地址或凭据。把示例变量替换为控制台提供的信息,并在可信网络环境中执行。

STEP 01

采集并核对主机指纹

首次连接前先采集 ED25519 主机公钥,计算指纹后与交付资料核对。不要在未核对时直接忽略警告。

STEP 02

创建独立密钥

为 ZoneMini 节点创建单独的密钥对。私钥保留在本地受控设备上,公钥再写入远端授权列表。

STEP 03

配置可读别名

在 SSH 配置中保存主机地址、用户名、密钥路径与会话保持参数,避免每次手工输入和混用不同节点。

STEP 04

验证后关闭密码依赖

确认密钥登录成功,再更新临时凭据。不要在密钥尚未验证时删除唯一可用的登录方式。

主机指纹核对
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>
~/.ssh/config
Host zonemini-build
  HostName <node-address>
  User <user>
  IdentityFile ~/.ssh/zonemini_ed25519
  ServerAliveInterval 30
  ServerAliveCountMax 3

macOS 屏幕共享

图形界面用于需要看见桌面的任务

屏幕共享适合 Xcode 图形化调试、系统设置核对和归档检查。构建脚本、日志收集与批处理仍建议通过 SSH 完成。

FINDER / CONNECT

从 Finder 发起连接

在 macOS Finder 中选择“前往”与“连接服务器”,输入交付资料对应的服务器地址,再使用授权用户名和凭据进入会话。

地址格式示意 vnc://<node-address>
  1. 01

    打开连接服务器

    使用 Finder 的连接服务器入口,不要通过来历不明的快捷方式保存凭据。

  2. 02

    输入授权信息

    核对用户名与节点地址后输入凭据。多人协作时不要共用同一组长期登录信息。

  3. 03

    调整显示质量

    网络波动时先降低分辨率或颜色质量。高分辨率桌面会增加传输量和输入延迟。

  4. 04

    限制剪贴板内容

    不要复制私钥、完整令牌或明文密码。跨会话粘贴前先确认目标窗口和当前用户。

  5. 05

    结束后锁定会话

    关闭客户端不一定等于退出桌面。完成工作后锁定会话,并关闭不再需要的敏感窗口。

跨平台图形访问

非 macOS 客户端先确认协议、网络与显示能力

Windows 或 Linux 工作站需要准备兼容的图形连接工具。不同客户端在快捷键、剪贴板、色彩、缩放和多显示器支持上可能存在差异,应先用非敏感任务验证。

客户端准备

选择支持目标连接协议、加密传输和自定义分辨率的客户端。安装来源应经过团队审核,并保持版本更新。

  • 确认键盘布局与特殊按键映射
  • 确认是否支持剪贴板开关
  • 确认全屏退出与会话锁定方式

网络准备

先验证 DNS、路由和目标端口,再测试图形会话。公司代理、出口防火墙与无线网络切换都可能造成会话中断。

  • 优先使用稳定的有线或可信网络
  • 避免在连接中途频繁切换网络
  • 保留 SSH 作为独立诊断通道

显示设置

先用单显示器和中等分辨率完成验证,再逐步增加画面尺寸。黑屏或画面裁切时,回到较低分辨率重新建立会话。

  • 按客户端窗口大小调整缩放
  • 关闭不必要的动画与透明效果
  • 高色彩精度任务先做本地对照

跨平台连接的判断标准

能稳定输入、清晰阅读日志、正确映射常用快捷键,并能安全结束会话,才适合纳入日常流程。若任务完全可以脚本化,优先使用 SSH 或 CI Runner。

CI Runner 接入

让固定节点承担可复现的队列任务

Runner 应使用独立账户、独立工作目录与受限令牌。先完成一条最小测试流水线,再加入签名构建、缓存与归档步骤。

  1. 01

    创建专用工作目录

    将源代码、依赖缓存、构建中间文件与最终产物分开,便于设置清理策略和排查磁盘占用。

  2. 02

    注册受限 Runner

    令牌只授权目标仓库与必要操作。不要复用个人访问令牌,也不要把令牌写入仓库或构建输出。

  3. 03

    设置队列标签

    按 Xcode 版本、项目类型、机型或任务负载设置标签,避免不兼容任务被调度到错误环境。

  4. 04

    执行测试与归档

    先运行依赖检查和单元测试,再执行归档。失败时保留必要日志,不要无条件上传整个用户目录。

  5. 05

    回传产物并清理

    确认产物已进入目标存储后,删除临时凭据、临时钥匙串、过期缓存和不再需要的构建目录。

RUN / ARCHIVE / CLEAN 最小任务骨架
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
输入:仓库、分支、受限环境变量 任务:测试、归档、日志收集 产物:归档文件、脱敏日志、退出状态
安全清单

把访问权限当成构建依赖管理

权限应有负责人、用途和到期时间。长期无人维护的共享账户、仓库令牌和临时文件,会让固定构建环境逐渐失去可审计性。

A1

启用密钥认证

每位维护者使用独立密钥。成员离开项目时移除对应公钥,不影响其他人的访问。

A2

限制共享账号

需要共享环境时,也应区分个人登录与自动化账户。不要让 Runner 使用管理员日常账户。

A3

定期轮换令牌

为仓库令牌、Runner 注册令牌和临时访问凭据设置轮换记录,失效令牌及时删除。

A4

最小化仓库权限

构建任务只获取所需仓库和分支权限。上传产物与读取源码可以使用不同凭据。

A5

锁定图形会话

离开桌面前锁定会话,关闭包含敏感内容的窗口,并清空不再需要的剪贴板内容。

A6

清除无用凭据

任务结束后删除临时私钥、一次性令牌、临时钥匙串和不再使用的授权文件。

连接故障速查

先分类,再收集最少且有用的证据

不要连续更换密码、地址和客户端碰运气。先记录错误类型、发生时间、本地网络、节点与入口,再执行对应检查。

SSH、屏幕共享与远程会话常见问题检查表
现象 先检查 可执行动作 提交支持时附带
连接超时 节点地址、本地网络、出口规则、目标端口 切换可信网络;测试端口连通性;确认未使用旧地址 发生时间、节点、客户端网络类型、脱敏探测结果
认证失败 用户名、密钥路径、文件权限、凭据是否更新 使用详细 SSH 日志定位选中的密钥;核对授权公钥 错误行、用户名、密钥指纹,不附私钥或完整密码
主机指纹变化 是否更换节点地址、重建实例或修改本地别名 停止连接;从控制台重新核对指纹;确认后再更新记录 节点、旧指纹、新指纹和首次发现时间
图形会话黑屏 会话是否已锁定、显示分辨率、客户端兼容性 降低分辨率;重新建立会话;通过 SSH 检查系统状态 客户端系统、客户端版本、显示设置与脱敏截图
分辨率异常 客户端缩放、多显示器模式、窗口尺寸 退回单显示器与中等分辨率,再逐项恢复设置 期望分辨率、实际分辨率、缩放比例与客户端类型
会话频繁中断 无线网络切换、代理、空闲策略、链路抖动 使用稳定网络;为 SSH 设置保活;把长任务放入持久会话 中断频率、持续时间、网络变化与相关日志片段
端口与路由检查
nc -vz <node-address> 22
route -n get <node-address>
SSH 详细日志
ssh -vvv zonemini-build 2>&1 | tee ssh-debug.log
工单资料包

让支持团队可以直接开始定位

请提供订单编号、ZoneMini M4 Core / ZoneMini M4 Plus / ZoneMini M4 Pro 其中一档、节点、发生时间、连接方式、复现步骤、期望结果和脱敏日志。不要上传证书私钥、仓库令牌或完整密码。

下单前准备

确定任务入口、机型与节点,再建立连接记录

准备好用途、并发任务数、所需内存、目标节点和租用周期。现有订单通过控制台查看连接资料;配置问题可先查帮助中心。