首次会话运行单

从访问资料到
第一次成功构建

先在控制台核对设备状态、节点、用户名、主机地址与指纹,再选择 SSH 或图形桌面。不要把“端口能通”当成环境已经可用:完成身份确认、磁盘检查和最小构建后,才算连接闭环。

本指南适用于 HopVM 独享云端 Mac。每个订单对应独享物理机,并非虚拟机;访问资料只应交给被授权的项目成员。

5 项 连接前核对
2 种 访问路径
1 次 最小构建验证
展示新加坡、东京、首尔、香港、美国东部和美国西部节点连接关系的网络示意图
连接前待核对 SESSION / FIRST-RUN
设备状态
控制台显示可连接
节点
与订单记录一致
身份材料
用户名、密钥、指纹
本地条件
系统时间与网络出口正常

访问地址、端口与凭据以控制台当前返回为准,不从聊天记录或旧文档复制。

先核对,再连接

第一次连接走完这四站

连接路线不是“拿到地址立即登录”。状态、身份、信任与环境四项都有记录,后续出现超时、权限拒绝或构建失败时才能快速定位。

  1. 01

    读取当前运行单

    登录控制台,确认订单标识、实际节点、设备状态、访问方式、用户名、地址、端口和主机指纹。若资料与团队旧记录不同,以控制台当前内容为准。

  2. 02

    准备本地身份材料

    把私钥保存在当前用户可读的目录,限制文件权限,不通过邮件、群聊或工单发送完整密钥。图形客户端也应使用独立连接配置。

  3. 03

    验证远端身份

    首次 SSH 连接先比对指纹,再接受主机记录。图形桌面连接则核对设备名称、节点与会话资料,避免连接到来源不明的地址。

  4. 04

    建立开发基线

    进入系统后检查时间、磁盘、当前用户和会话,再执行 Xcode 版本查询、Git 拉取与最小构建。记录命令、退出码和耗时。

命令行路径

SSH 连接:先把身份与指纹做对

下面使用文档保留地址演示命令。实际用户名、主机地址、端口和指纹只能从控制台取得,不要照抄示例值建立真实会话。

SSH 核对单

从密钥权限到安全退出

MODE / CLI
A

限制私钥权限

私钥应只允许当前本地用户读取。权限过宽时,SSH 客户端通常会拒绝使用该文件。

chmod 600 ~/.ssh/hopvm_ed25519
ls -l ~/.ssh/hopvm_ed25519
B

发起首次连接

203.0.113.24 是文档示例地址。若控制台给出自定义端口,应增加 -p 参数。

ssh -i ~/.ssh/hopvm_ed25519 \
  -p 22 developer@203.0.113.24
C

比对主机指纹

终端显示指纹后暂停操作,与控制台中的指纹逐字符比对。只有完全一致时才输入 yes 接受记录。

ED25519 key fingerprint is
SHA256:EXAMPLE_ONLY_REPLACE_FROM_PANEL
D

退出并确认会话结束

完成任务后先停止前台程序,再正常退出 shell。不要直接关闭本地终端来代替应用收尾。

jobs
exit

首次确认不是例行点击

主机指纹是远端身份校验依据。如果提示指纹变化,先停止连接并核对控制台资料,不要通过删除本地记录来绕过警告。

保留可复现记录

记录连接时间、时区、本地网络、实际节点、命令参数和退出码。排障时提供脱敏记录,比只写“连不上”更容易定位。

图形会话

需要 Xcode 与图形应用时,使用受控桌面会话

图形桌面适合 Xcode 工程操作、签名配置、模拟器检查和媒体应用。它与 SSH 使用场景不同,但连接前仍需核对设备、节点与访问资料。

连接前

确认本地环境可信

优先使用受控工作电脑和可信网络。检查本地系统时间,关闭不必要的屏幕录制、剪贴板同步与文件自动共享功能。

  • 设备名称与控制台记录一致
  • 访问资料未保存到公共文档
  • 本地网络允许所需连接方式
会话中

只开启任务需要的能力

进入桌面后先确认当前用户和系统时间,再打开 Xcode 或目标应用。复制项目资料时使用团队批准的传输路径。

  • 不共享管理员凭据
  • 不把敏感令牌留在剪贴板
  • 大型传输结束后核对文件完整性
离开前

关闭凭据保存并主动退出

在公共设备或临时电脑上必须关闭密码与连接资料保存。结束时退出图形会话,不以锁屏代替断开。

  • 清理临时下载与剪贴板内容
  • 确认构建与传输进程已经结束
  • 回到控制台核对设备状态
一条可复现的首次任务

把连接、构建与交付写进同一份运行记录

终端记录依次演示 SSH、Xcode 构建和 Fastlane 输出。示例不包含真实地址或凭据,重点是保留命令、成功标记与退出码。

节点 SG / 首次验证会话 / zsh
local % ssh -i ~/.ssh/hopvm_ed25519 developer@203.0.113.24 Host key fingerprint verified against control panel record Authenticated to documentation host using public key   hopvm % sw_vers && xcodebuild -version ProductName: macOS Xcode 16.x   hopvm % xcodebuild -scheme SampleApp -configuration Debug build Resolve Package Graph CompileSwift normal arm64 ** BUILD SUCCEEDED ** xcodebuild exit code: 0   hopvm % bundle exec fastlane verify_build Running lane verify_build Artifact manifest written to ./artifacts/manifest.json fastlane finished successfully process exit code: 0   hopvm % exit Connection closed after task completion
记录基线 节点、命令、耗时、退出码、产物路径
脱敏后提交 移除地址、密钥、令牌、仓库凭据和项目私密内容
进入系统后的第一分钟

先确认安全基线,再拉取项目

连接成功只证明会话已经建立。开始处理代码、模型或素材前,逐项检查系统时间、磁盘余量、当前身份、密钥权限与开放会话。

系统时间

运行 datesystemsetup -gettimezone,确认时区和当前时间符合任务记录。时间偏差会影响证书、日志排序与依赖下载。

磁盘余量

运行 df -h,检查系统卷、项目目录与缓存空间。构建前预留源代码、依赖、派生数据、归档和最终产物所需容量。

当前用户

运行 whoamiid,确认当前身份符合项目权限设计。不要为了省事共享管理员凭据,也不要把所有任务都放在高权限会话中执行。

密钥权限

检查项目使用的 SSH 密钥、配置文件和凭据目录权限。不要把秘密写入 shell 历史、构建脚本、仓库提交或可被其他成员读取的公共目录。

开放会话

使用 whow 和团队约定的会话记录确认当前连接。发现未知会话时暂停敏感操作,保存脱敏证据并提交控制台工单。

开发环境验收

用最小任务建立可比较的基线

不要一上来运行完整流水线。先做版本、仓库和最小构建三项验证,能把连接问题、依赖问题和项目问题分开。

  1. 01

    记录系统与 Xcode 版本

    保存 sw_versuname -mxcodebuild -versionxcode-select -p 的结果。后续比较构建差异时,这些是最基本的环境字段。

  2. 02

    测试 Git 读取路径

    先对一个低风险仓库执行 git ls-remote,确认网络、仓库权限与主机信任,再执行浅克隆。失败时保留退出码,不要反复修改凭据掩盖原始问题。

  3. 03

    运行最小构建目标

    选择依赖较少、执行时间短的 scheme,显式指定配置并记录完整命令。优先验证编译链路,再逐步加入测试、归档和自动化交付步骤。

  4. 04

    保存基线耗时与退出码

    记录开始时间、结束时间、依赖解析耗时、构建耗时、峰值磁盘占用和退出码。性能波动时,先用同一任务复测,不用不同项目互相比较。

按现象排查

五类常见连接问题,先找断点再改配置

每次只改变一个条件,并保留改变前后的结果。若需要支持介入,请附订单标识、实际节点、问题时间与时区、复现步骤、预期结果和脱敏输出。

连接超时:从哪里开始检查?
  1. 先在控制台确认设备状态和访问资料没有变化。
  2. 核对本地系统时间、网络出口、目标地址和端口,不用旧截图中的资料。
  3. 切换到可信网络复测,记录本地网络类型与问题时间。
  4. 使用带详细输出的 SSH 命令获取连接停在哪一阶段:ssh -vvv
  5. 提交工单时附脱敏输出,不提交私钥或完整连接配置。
主机指纹发生变化:可以直接删除旧记录吗?

不可以先删记录再继续。立即停止连接,核对控制台当前指纹、节点和订单标识。如果变化有明确依据,再只移除对应主机条目;无法确认时从控制台提交工单,并附旧指纹、新指纹和首次出现时间。

出现 Permission denied:应检查哪些层面?
  1. 确认用户名与控制台一致,避免把本地用户名当成远端用户名。
  2. 检查私钥路径和权限,确认 SSH 实际加载了预期密钥。
  3. 使用 ssh -v 查看客户端提供了哪把密钥,不在命令中输出秘密内容。
  4. 确认复制的公钥没有被截断或加入多余换行。
  5. 不要连续尝试来源不明的凭据,保留首次失败输出后提交工单。
图形会话中断,但 SSH 仍可连接,怎么判断?

先通过 SSH 检查系统时间、磁盘余量、当前用户和相关进程,确认设备本身仍可响应。随后检查本地图形客户端版本、网络变化、自动重连与凭据保存设置。不要通过强制结束未知进程来试错;需要支持时提供中断时间、客户端类型、是否能 SSH 连接及脱敏日志。

公司或校园网络限制连接,如何缩小范围?
  1. 确认限制发生在地址解析、端口建立还是身份验证阶段。
  2. 在符合组织安全规则的前提下,使用另一条可信网络复测。
  3. 向网络管理员提供目标端口和业务用途,不发送私钥或登录凭据。
  4. 记录受限网络与可用网络的差异,避免把本地网络问题误判为节点故障。

仍无法完成连接?

控制台工单可以关联实际订单与设备。提交前准备订单标识、节点、时间与时区、复现步骤、最近一次正常时间和脱敏错误输出。

结束与交接

任务完成不等于直接关掉窗口

结束会话前要停止任务、核对产物、清理临时身份材料并更新交接记录。下一位成员获得的是受控访问权限,不是上一位成员的凭据副本。

  1. 01

    停止后台任务

    检查 shell jobs、构建进程、上传任务与图形应用。先让任务正常结束,再退出会话,避免留下占用资源或写入未完成的进程。

  2. 02

    保存必要产物

    核对归档、日志、校验值和产物清单,传回团队批准的位置。不要把唯一副本留在临时目录或只存在于当前会话中。

  3. 03

    清理临时凭据

    移除临时密钥、短期令牌、剪贴板内容和本地下载文件,检查 shell 历史与项目配置中没有残留秘密。

  4. 04

    完成受控交接

    记录节点、当前任务状态、最后成功命令、产物位置和待办事项。为下一位成员配置独立权限,不共享管理员凭据。

最后回到控制台确认设备状态

核对会话已经结束、订单与节点记录正确。发现异常访问或状态不一致时,立即撤销相关权限并提交控制台工单。

准备一台项目用 Mac

按天、周、月或季租用独享云端 Mac

三档 Apple Silicon 配置覆盖构建、日常开发和大内存推理,六个节点全年 365 天正常运行。订单统一以 USD 结算,仅支持 USDT-TRC20 与 Visa / Mastercard / Amex(经 Stripe)。