swobdocs
浏览五章

CONTINUE REMOTELY

SSH 远程 Resume

Swob 只编排你已经能安全登录的 SSH 主机;它不接管私钥,也不替你绕过远端权限。

Swob 使用已有 SSH 配置在远端工作目录恢复 Claude Code 会话

先判断它是否适合你的场景

SSH Resume 适用于:会话已经出现在当前 Library 中,并且它的真实工作目录和 Claude Code CLI 位于一台你已经可以安全登录的远程主机。

它不负责:

  • 扫描远端硬盘或把远端历史自动同步到本机;
  • 创建账号、分发私钥、绕过密码或 host key 检查;
  • 把本机会话“迁移”为远端会话;
  • 为非 Claude Code 来源承诺远程 Resume;
  • 在 Windows x64 Beta 中开放 SSH 设置。

第一步:在 Swob 之外验证 SSH

先使用已有的 ~/.ssh/config、SSH agent 或系统密钥能力完成登录。Swob 不应成为第一次测试 SSH 凭据的地方。

  1. 验证主机别名

    ssh <host-alias>

    如果仍要求输入密码、确认未知 host key 或报告 Permission denied,先在系统 SSH 配置中解决。不要把密码或私钥粘贴进 Swob。

  2. 验证远端 CLI

    command -v claude
    claude --version

    找不到命令时,记录经过核对的 launcher 绝对路径;不要猜测路径。

  3. 验证远端工作目录

    cd <remote-cwd>
    pwd

    路径必须属于目标会话真实项目。进入相似名称的另一个 checkout 也不算成功。

第二步:在 Swob 中保存连接设置

进入“设置 → SSH”,填写你刚刚验证过的 host、user 和可选远程 launcher 路径。

Swob SSH 设置:保存远程主机,并区分 Tailscale、局域网与公网连接信息

E2E 模拟数据 · 图中地址使用文档保留网段

  • host 优先使用 ~/.ssh/config 中已经验证的别名,复用端口、跳板机和密钥选择。
  • user 必须与终端成功登录时一致。
  • Claude launcher 已在远端登录 shell 的 PATH 中时,不要额外填写路径。
  • Swob 保存连接配置,不保存 SSH 密码或私钥正文。

第三步:选择一条已经存在的远端会话

SSH 设置不会主动抓取远端会话。目标会话必须已经出现在当前 Library 中,并带有可核对的远端主机、session ID 和工作目录。

打开会话后先检查:

  1. 来源是 Claude Code;
  2. 会话被标记为远端,而不是只有文件位于同步盘;
  3. 工作目录与第一步在远端验证的目录一致;
  4. 详情不是 unavailable,且 session ID 可解析。

第四步:执行 Resume

从会话顶部的 Resume 菜单选择 SSH/远端续接。Swob 会打开配置的本地终端,并在远端交互登录 shell 中进入工作目录、启动 Claude Code:

ssh -t user@host 'zsh -li -c "cd <remote-cwd> && claude --resume <id>"'

交互登录 shell 同时加载远端 ~/.zprofile~/.zshrc。路径和 session ID 都经过 shell quote。

命令生成成功不等于恢复成功

终端打开后,仍要在 Claude Code 中核对上一轮消息、项目目录或会话标题。只登录到远端、只进入项目目录、或只启动一个新 Claude 会话,都不算进入了目标历史。

常见失败与下一步

现象 先检查什么 不要做什么
Could not resolve hostname ~/.ssh/config 的 host alias 是否能在终端使用 不要在 Swob 中反复改随机地址
Permission denied SSH agent、用户名、密钥选择和远端授权 不要粘贴密码或私钥到会话/日志
claude: command not found 登录 shell PATH 与已验证 launcher 路径 不要猜测 /usr/local/bin 等路径
cd: no such file or directory 会话记录的 remote cwd 是否已移动或删除 不要改成另一个同名项目碰碰运气
启动了 Claude 但不是目标会话 session ID、来源和 --resume 是否仍被上游接受 不要把“打开客户端”记为成功
终端立即关闭 SSH/远端 CLI 的 stderr 与退出码 不要无限重试隐藏稳定失败

需要报告问题时,只提供错误类型、Swob/Claude 版本和脱敏后的路径结构;不要提交 hostname、IP、用户名、私钥、cookie 或完整终端日志。

安全边界

范围

SSH Resume 当前面向远端 Claude Code 会话。Windows x64 Beta 不开放 SSH 设置入口。

  • 主机身份和权限由系统 SSH 负责,Swob 不降低这些检查。
  • 远端命令只应针对用户明确选择的会话和工作目录。
  • Library 位于同步盘不等于 SSH 已配置,也不等于远端主机可信。
  • 失败时保留证据并停止;不要用关闭 host key 检查等方式换取“能连上”。