文档 / SSH worktrees
Orca 可以通过 SSH 驱动远程机器上的代理——适用于长时间运行的构建、GPU 机器,或任何不适合在笔记本电脑上执行工作的环境。
SSH 是将代理部署到远程计算的一种方式。对于本地、自托管服务器和临时虚拟机,请参阅 运行 Orca 的方式。
添加 SSH 目标¶
- 打开 设置 → SSH。
- 点击 添加目标。主机表单会在模态框中打开(而不是在列表下方内联显示),因此即使主机列表很长,主机、高级和保存仍可访问。编辑使用相同的对话框,并显示目标标签以及
user@host:port。 - 填写主机、用户、端口和可选的身份文件——或者在同一对话框中打开 OpenSSH 配置 选择器,以搜索
~/.ssh/config(包括Include的文件),选择一个主机并预填表单。已在 Orca 中保存的主机会显示 已在 Orca 中 徽章。当该流程可用时,你仍可以从配置中批量导入主机。 - 如果密钥受密码短语保护,Orca 会在首次使用时提示。
- 点击 测试 以验证连接,然后点击 保存。
未完成的添加/编辑表单会忽略外部点击,因此意外点击其他地方不会丢弃你的字段;请使用 Escape、取消 或 × 来丢弃。
主机密钥验证¶
Orca 会将内置 SSH 连接与你的有效 OpenSSH known_hosts 文件以及它之前保存的密钥进行比对。现有匹配项会静默连接。在默认策略下,Orca 会在首次接触时接受并记住主机,并显示其指纹;StrictHostKeyChecking yes 会拒绝未知主机,而 no / off 会接受但不保存信任记录。
如果密钥已更改、被吊销或出现意外不同的密钥类型,Orca 会在请求密码或密钥密码短语之前拒绝连接。如果你有意重建或重新配置了主机,请先验证其新指纹,然后按照错误中的恢复路径操作。对于 known_hosts 不匹配,Orca 会提供相应的 ssh-keygen -R 命令(在需要时包括带括号的主机和端口)。
使用目标¶
创建 worktree 时,选择 SSH 目标而不是本地目标。Orca 将:
- 在远程主机上创建 git worktree。
- 通过 SSH 连接在远程运行代理。
- 同步文件事件,使编辑器、差异和浏览器仍然感觉像本地。
高级连接选项¶
打开 设置 → SSH,编辑一个目标,并在主机需要代理、跳板主机或 SSH 多路复用覆盖时展开 高级连接。Orca 默认启用 复用 SSH 连接以加快设置,它在 macOS 和 Linux 上使用 OpenSSH 连接复用,因此设置命令不必每次都进行新的 SSH 握手。仅当主机的 SSH 策略拒绝多路复用会话时,才将其关闭。
密码短语¶
密码短语会在 Orca 会话期间保存在内存中。关闭 Orca 会清除它们。你可以在 SSH 设置中选择更长的 TTL。
状态¶
远程 worktree 会显示一个带有实时 SSH 状态的徽章——绿色表示已连接,黄色表示正在重连,红色表示已断开。当 SSH 主机仍在连接时,Orca 可以从 持久化的本地元数据 中列出工作区,以便在实时提供程序启动之前侧边栏不会为空;一旦连接稳定,这些行会刷新为权威的远程状态。断开连接不会终止正在运行的代理;Orca 会重新连接并重新附加,重放滚动输出,并从其已渲染的帧恢复全屏应用窗格,而不是让它们返回空白或碎片化状态。当主机断开时,受影响的工作区卡片可以显示内联 连接 / 重连控件,这样你无需打开终端覆盖层或查找状态栏即可恢复。如果 SSH 中继以 "Multiplexer disposed" 风格的故障断开,Orca 会自动恢复,而不是让窗格卡住直到你重启。代理状态(工作中 / 空闲 / 阻塞)会通过 SSH 以与本地相同的方式传播,因此侧边栏和 代理动态 会实时反映远程代理。
应用关闭后的会话¶
关闭桌面应用不再终止你的远程 PTY 会话。远程终端会话通过运行在远程主机上的中继进行租约,因此它们可以在你的笔记本电脑上关闭 Orca 后存活。当你重新打开应用并重新连接到目标时,已租约的 PTY 会以 已附加 状态恢复到其标签页中,滚动缓冲区保持完整。默认情况下完全没有倒计时:每个目标都启用了 在重置前保持终端存活,因此分离的会话会持续运行,直到你显式结束它们——结束远程终端、重置中继、删除目标或关闭标签页。在 高级连接 下关闭该开关,可以为该目标设置有限的 断开连接后超时;表单默认从 24 小时开始,接受 60 秒到 7 天,之后中继会拆除分离的会话。与主机失去联系并不证明其工作已停止,因此当前无法访问的远程会话不应被假定已死亡——在同一个 worktree 上启动第二个代理之前,请先检查主机。
下载远程文件和文件夹¶
在 SSH worktree 文件资源管理器中右键点击:
- 文件 → 下载 — 原生保存对话框;将文件复制到你的笔记本电脑。
- 文件夹 → 下载文件夹 — 递归下载到你选择的文件夹(仅限桌面端)。
Orca 使用与连接相同的 SSH 传输路径。只有当连接声明支持递归文件夹传输(通常是完整 SFTP)时,才会显示文件夹下载。仅使用系统 OpenSSH 传输的连接可能仍然可以下载 文件,但不会显示 下载文件夹。
这是仅限桌面端的操作——Web 客户端不暴露下载,因为它依赖 Electron 的保存对话框。
在 VS Code 中打开远程工作区¶
对于 SSH worktree,当配置的应用是 VS Code 或 VS Code Insiders(code / code-insiders,或指向这些启动器的直接路径)时,worktree 菜单的 打开方式 列表可以将远程路径交给 VS Code Remote-SSH。
- 配置 设置 → 常规 → 打开方式菜单,使 VS Code 出现在列表中(预设或自定义命令)。
- 右键点击 SSH worktree(或使用 worktree 溢出菜单)→ 打开方式 → VS Code。
- Orca 会针对该主机和 worktree 路径(
--remote ssh-remote+<host> <path>)使用 Remote-SSH 启动 VS Code。菜单项可能显示 Remote SSH 徽章。
此远程路径不支持: Cursor、Zed、复合 shell 命令,或通过 Remote Orca Server 活动运行时打开(这些保持 仅限本地)。仅对本地路径使用 Finder/Explorer 项。
Kerberos / GSSAPI¶
如果 OpenSSH 配置中的某个主机设置了 GSSAPIAuthentication yes,Orca 会优先为该目标使用 系统 OpenSSH 传输(内置 ssh2 客户端不支持 GSSAPI)。连接前请保留有效的 Kerberos 票据(kinit / 你所在组织的 SSO)。手动目标在配置为系统 SSH 时也可以启用 GSSAPI。
对于从配置导入的主机,你无需切换单独的“Kerberos 模式”开关——导入/ssh -G 会携带该标志。
FIDO2 / security keys¶
基于硬件的 OpenSSH 身份(ed25519-sk、ecdsa-sk,包括由代理支持的安全密钥)也使用 系统 OpenSSH,而不是内置 ssh2 客户端。Orca 会从你的身份文件中检测密钥类型,并将连接交给操作系统的 OpenSSH 二进制文件,以便触摸 / PIN 提示按常规工作。常规 Ed25519、ECDSA 和 RSA 密钥仍使用内置传输。如果机器上不可用 OpenSSH,则这些 FIDO2 目标无法进行身份验证,直到安装 OpenSSH 并将其置于 PATH(或位于常见的 Windows/macOS/Linux 位置)中。
Linux hosts without a C/C++ toolchain¶
首次连接时,Orca 会在远程安装一个小型中继。远程终端需要一个原生 node-pty 模块。Linux 包通常会在主机上编译;macOS/Windows 中继使用预构建版本。
如果远程缺少 make、C++ 编译器和 python3,Orca 仍会完成针对文件、git 和编辑器的连接,但在安装构建工具之前,远程终端将无法工作。Orca 可能显示的示例安装提示:
- Debian/Ubuntu:
sudo apt-get install -y build-essential python3 - Fedora/RHEL:
sudo dnf install -y make gcc gcc-c++ python3 - Alpine:
sudo apk add build-base python3 - Arch:
sudo pacman -S --needed base-devel python
安装这些工具,然后重新连接,以便中继可以安装原生模块。
Port forwarding¶
对于远程 worktree,右侧边栏会显示 端口 选项卡(使用 Cmd+Shift+I 切换)。Orca 会扫描远程的 /proc/net/tcp,并在 已检测 下列出监听端口——单击即可将它们转发到你的笔记本电脑。你也可以手动添加转发、编辑它们或移除它们。转发会在应用重启和 SSH 重连后保留,并且特权远程端口会自动在本地重新映射(例如远程 80 → 本地 10080)。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 orca48/orca