远程访问指南

安全连接云端 Mac,并完成第一轮可用性验证

SSH 负责命令行、自动化与构建任务,VNC 负责图形桌面操作。先核对节点信息和主机指纹,再建立会话、验证工具链并记录结果。

命令行
SSH 与密钥认证
图形桌面
VNC 与受控剪贴板
验证目标
连接、工具链、任务、退出
连接前登记 READY / VERIFY
节点信息 主机名、端口、用户名 已获取
身份材料 私钥或临时凭据 本地保管
信任校验 核对主机指纹 必须完成
首轮验证 终端、桌面、构建任务 记录结果

不要从聊天记录或不明来源复制主机指纹。以控制台当前订单返回的信息为准。

选择连接方式

先按任务选择 SSH 或 VNC

两种方式连接同一台独享物理 Mac,但承担的任务不同。自动化流程优先使用 SSH;需要检查图形界面、分辨率或桌面应用时使用 VNC。

命令行与自动化

SSH:构建、脚本与 runner 的首选

适合执行 Git、Xcode 命令行工具、Fastlane、依赖安装、日志采集和 self-hosted runner 任务。连接前准备本地 SSH 客户端、受保护的私钥、节点主机名、端口、用户名和可信主机指纹。

  • 私钥文件仅对当前用户可读
  • 本地网络允许访问订单返回的端口
  • 首次连接前通过独立渠道核对指纹
  • 自动化任务使用单独密钥并限制用途
图形桌面操作

VNC:桌面应用与显示环境检查

适合操作 macOS 图形界面、检查键盘布局、确认分辨率和验证需要桌面会话的任务。连接前准备可信的 VNC 客户端、节点地址、临时凭据和明确的剪贴板策略。

  • 共享设备不保存连接密码
  • 按工作负载设置合理分辨率
  • 关闭不需要的文件与剪贴板同步
  • 确认空闲锁定和断线重连行为
首次连接流程

从节点信息到验证记录,按四步完成

不要跳过主机指纹核验。连接成功只说明链路可达,工具链、目录权限和退出流程仍需分别确认。

  1. 01 获取节点信息

    在控制台打开当前订单,记录主机名、连接端口、用户名、临时凭据或密钥说明,以及系统返回的主机指纹。

    验收:字段来自同一订单,节点与租期一致
  2. 02 独立核对指纹

    首次 SSH 连接显示指纹时,逐段与控制台信息比对。若不一致,停止连接,不要通过忽略警告或清空记录绕过。

    验收:算法与指纹文本完全一致
  3. 03 建立会话并更新凭据

    完成首次登录后,按交付说明修改临时凭据,登记自己的公钥,并移除不再需要的临时访问材料。

    验收:新会话可用,旧临时材料不再使用
  4. 04 记录验证结果

    执行系统版本、Xcode 版本、磁盘空间和工作目录写入检查,再运行一个可重复的小型构建任务并正常退出。

    验收:连接、工具链、写入、任务和退出均有结果
终端验证样例

用一段可复现会话检查 SSH、Xcode 与 Fastlane

以下主机名、用户名和任务名称均为示例。实际连接参数只从控制台读取,不要把生产凭据写进脚本、构建日志或工单。

armcli-session — verification
$ ssh -p 22022 developer@host.example
The authenticity of host cannot be established.
ED25519 key fingerprint is SHA256:<compare-with-console>
Are you sure you want to continue connecting (yes/no)? yes
Last login: current session

developer@cloud-mac % xcodebuild -version
Xcode 16.x
Build version 16X000

developer@cloud-mac % fastlane test
[✓] Preparing build environment
[✓] Resolving project dependencies
[✓] Test task completed

developer@cloud-mac % exit
Connection to host.example closed.
检查点:指纹已核对 Xcode 可调用 任务正常结束 会话已退出
桌面连接检查

VNC 可用,不等于桌面环境已经适合工作

首次进入图形桌面后,用固定顺序检查显示、输入、数据交换和会话恢复。每项都应能在断开并重新连接后复现。

01

分辨率与缩放

选择能够完整显示工具栏和对话框的分辨率。不要只看桌面是否清晰,还要打开实际开发工具检查文本、侧栏和弹窗是否被裁切。

02

键盘布局

在普通文本框中验证字母、数字、符号和常用快捷键。若本地与远端布局不同,先统一布局,再开始编辑代码或输入命令。

03

剪贴板策略

只在任务确有需要时启用剪贴板同步。不要复制私钥、令牌或完整环境变量;共享设备上应关闭双向同步并清空历史记录。

04

空闲锁定

确认离开设备后桌面会进入锁定状态。团队共用终端设备时,结束操作后主动锁定,不依赖网络断开代替会话保护。

05

断线重连

主动断开一次并重新连接,确认会话状态符合预期。对长时间构建任务,使用能与交互连接分离的任务管理方式。

06

共享设备清理

退出后删除保存的主机记录、缓存凭据和临时下载文件。浏览器、VNC 客户端与密码管理工具都要分别检查。

SSH 隧道实践

只转发当前任务需要的本地端口

本地端口转发可以让本机工具通过 SSH 会话访问远端服务,无需把服务监听地址暴露给更大网络。端口、目标地址和持续时间都应有明确边界。

  • 最小开放:远端服务优先监听回环地址,只转发当前任务使用的单个端口。
  • 明确保活:为长任务配置合理的保活间隔,并设置失效次数,避免失联会话无限挂起。
  • 单独密钥:自动化隧道使用独立密钥,权限与用途可单独撤销,不与日常交互密钥混用。
  • 任务后撤销:结束转发后终止进程、撤销不再使用的公钥,并检查本地监听端口已关闭。
本地端口转发样例 LOCAL ONLY
ssh \
  -L 127.0.0.1:9000:127.0.0.1:9000 \
  -o ServerAliveInterval=30 \
  -o ServerAliveCountMax=3 \
  -p 22022 \
  developer@host.example
本地监听
127.0.0.1:9000
远端目标
127.0.0.1:9000
退出方式
正常结束 SSH 会话并确认端口关闭
CI/CD 接入

先让 runner 完成一条最小测试流水线

接入 GitLab CI 等系统时,不要直接迁移完整生产流程。先注册 runner、固定标签、验证目录权限,再执行无敏感数据的小型测试任务。

01

注册 runner

使用单独的服务身份完成注册,记录 runner 名称、执行器、工作目录和归属项目。注册令牌只在必要步骤中使用,不写入仓库。

结果:runner 在线
02

添加明确标签

标签描述真实能力,例如 macOS、arm64 和项目用途。避免使用含义宽泛的默认标签,防止不相干任务被调度到该节点。

结果:任务可精确匹配
03

验证工作目录

检查克隆、缓存、构建产物和临时目录的读写权限。任务身份不应获得超出工作目录所需的系统权限。

结果:目录读写受控
04

执行首个任务

首轮只执行环境输出、依赖解析和小型测试。确认退出码、日志完整性、缓存路径和失败时的清理行为。

结果:任务可重复执行
runner 首轮验收记录
检查项 执行方式 通过条件 失败时先查
架构与系统 uname -m 输出与任务标签一致 runner 标签与执行节点
Xcode 工具链 xcodebuild -version 版本可读取,命令退出码为 0 命令路径与任务环境
工作目录 创建、读取并删除测试文件 仅目标目录可按需读写 目录所有者与权限
缓存行为 连续执行两次相同测试 缓存命中可解释且不串项目 缓存键与清理策略
连接故障排查

从 DNS 到本地网络,按顺序缩小范围

一次只验证一个变量。不要同时更换主机名、端口、密钥和网络,否则即使恢复连接,也无法确认根因。

01
DNS 与主机名

确认使用控制台当前返回的主机名,并检查解析结果是否稳定。不要从旧工单或历史脚本复制地址。

解析结果
02
连接端口

核对端口数字和协议,测试本地到目标端口是否可达。若公司网络有限制,使用另一条受信网络交叉验证。

端口可达性
03
密钥与文件权限

确认客户端实际加载的密钥文件、文件权限和对应公钥。开启详细日志时先脱敏,再检查认证顺序。

认证阶段
04
主机指纹

指纹变化时先停止连接并重新核对节点信息。不要直接删除已知主机记录后继续登录。

信任校验
05
会话占用

检查是否存在未退出的桌面会话、长任务或本地端口转发。先确认任务状态,再决定是否结束进程。

会话状态
06
本地网络

最后检查代理、防火墙、VPN、无线网络质量和出口策略。用受信的替代网络复测,以区分本地链路与节点问题。

网络范围
提交工单前准备这些信息

节点标识、问题发生时间、连接方式、完整命令结构、错误摘要、已尝试步骤和脱敏日志。删除私钥、令牌、密码、完整指纹与业务数据后再提交。

离场清单

结束任务前,把访问、数据与租期一起收口

断开远程窗口不是完整离场。需要退出会话、撤销访问材料、清理敏感文件、确认备份,并核对订单租期。

  1. 01 退出所有会话

    结束 SSH、VNC、本地端口转发和 runner 交互会话,确认没有遗留的测试进程或后台监听端口。

  2. 02 撤销不再使用的密钥

    移除临时公钥、测试 runner 凭据和一次性访问材料;保留项应有明确所有者和后续用途。

  3. 03 清理缓存与敏感文件

    检查 shell 历史、临时目录、构建日志、下载目录、剪贴板历史和工作区中的配置文件,删除不应继续保留的内容。

  4. 04 验证备份可读取

    确认代码和必要产物已迁出,并在独立位置完成一次读取验证。不要把节点上的单份文件当作备份。

  5. 05 核对租期与订单状态

    在控制台确认到期时间、续租状态和服务记录。需要继续使用时,先确认租期再安排后续构建任务。

准备开始

租用独享物理 Mac,再按本指南完成接入

三档在售配置覆盖命令行构建、图形桌面、CI/CD runner 与并行任务。实际可用状态以控制台实时返回为准。

SSH 与 VNC 独享物理节点 全年 365 天正常运行