DeepSeek Harness 远程 SSH 插件介绍

前言

在使用 DeepSeek Harness(DSH)进行智能体开发时,需要频繁连接远程服务器来运行代码、管理文件或调试会话。如果每次都手动打开 SSH 终端,再在 Web UI 中切换上下文,会打断工作流。现有做法通常依赖外部工具或手动配置,缺乏统一的入口和状态管理。这个插件在 DSH Web UI 左侧栏增加了一个「远程 SSH」入口,把 SSH 主机管理和远端工作区编排整合到插件体系内。

这是什么

junjiangao/dsh-plugin-remote-ssh 是 DeepSeek Harness 的一个插件,负责在 DSH 中管理 SSH 主机,并支持两种方式接入远端工作区:独立远端窗口和同一窗口混合模式。插件不注册模型工具,只负责主机管理 + 远端窗口编排,真正的 SSH 能力由官方 provider 家族提供。维护者为 junjiangao,分类为联网工具。

核心功能

  • 侧栏入口:在 Web/桌面端左侧栏出现「远程 SSH」,主区展示主机列表。
  • 主机来源:默认读取 ~/.ssh/config,导入条目只读;插件托管的主机可添加、编辑、删除。
  • 主机表单:添加/编辑共用一个表单,支持别名、显示名、HostName、User、Port、IdentityFile、ProxyJump、ProxyCommand、IdentitiesOnly、ForwardAgent、KeepAlive、StrictHostKeyChecking、UserKnownHostsFile、ConnectionAttempts、ConnectTimeout、extraOptions、remoteWorkspace、remoteHelperRoot 等字段。
  • 先检查再安装:打开主机前检查 SSH、远端平台、Node/npm、helper、工作目录和本地 runtime;helper 缺失或版本不匹配时弹出确认对话框,确认后才在远端执行 npm 安装。
  • 独立远端窗口:每次打开使用官方 SSH provider 启动一个独立的 DSH Web 实例(独立 profile、独立端口、隔离的 DSH home),在浏览器新标签页打开带鉴权的 URL。
  • 远端工作区与 @ 文件:远端窗口默认工作区直接指向远端路径;@ 文件候选由插件通过官方 fs-ssh 读取远端目录,而不是扫描本机。
  • 远端目录选择器:远程窗口里点「添加工作区」浏览的是 SSH 主机上的目录,而不是本机文件夹;新建目录也在远端执行。
  • 远程工作区侧栏:主界面侧栏新增一个只读聚合面板,按「远程机 + 工作区」列出各主机隔离 home 中的远端工作区与会话,可直接打开/停止窗口。
  • 会话深链:在「远程工作区」面板点某个会话,会打开对应远端窗口并直接定位到该会话(基于隔离 home 中的短期标记,不依赖 URL 参数)。
  • 同窗口混合模式:在「远程工作区」面板的「在此窗口打开」把远端目录登记为普通 Workspace;新会话的 Bash、读写文件、列目录走 SSH 世界,本地 Workspace 不受影响。
  • 不使用模型工具:不向 ctx.tools 注册 ssh_exec / ssh_upload 等工具,避免和官方 agent 能力重复。

安装与启用

插件通过插件管理器安装,需要在 profile 的 cordis.patch.yml 中配置。插件清单声明了 dsh.bundle.patch,接管本地/远端执行。安装/启用后需要重启 Harness Host 或重新加载 profile 才能加载新的 Host 模块。

在 profile 的 cordis.patch.yml 中添加:

- id: subprocess
  disabled: true
- id: sandbox
  disabled: true
- id: fs-sandbox
  disabled: true

- insert:
    - id: remote-ssh
      name: '@junjiangao/dsh-plugin-remote-ssh'
      config: {}

被禁用的三行由插件的执行路由器重新提供:本地世界仍挂载官方 dsh-fs-sandbox / dsh-subprocess-local / dsh-sandbox-local,远端世界按需挂载 SSH provider。

典型用法

  1. 重启 Harness Host 后打开 Web UI,点击左侧栏「远程 SSH」。
  2. 列表分为两组:托管主机(插件写入 ~/.dsh/remote-ssh/ssh_config 的主机,可编辑/删除)和来自 ~/.ssh/config 的只读导入条目(可「复制为托管」后再改)。
  3. 点击「添加主机」,填写别名和主机名即可保存;~/.ssh/config 顶部会自动出现一个受管理的 Include 块。
  4. 点击某台主机的「测试」验证 SSH 连通性;点击「打开」进入准备流程。
  5. 首次打开时如果远端没有匹配版本的 helper,会先显示安装确认和将要执行的 npm 命令;确认后等待安装、runtime 准备和窗口启动。
  6. 窗口启动后点击「打开窗口」在浏览器新标签页打开远程工作区;「停止」结束该主机的实例。
  7. 侧栏「远程工作区」按「远程机 + 工作区」汇总已打开的远端工作区与会话;点击会话会自动打开对应窗口并定位到该会话。
  8. 想在当前窗口同时使用本地和远端时,在「远程工作区」点「在此窗口打开」,详见混合模式。

适用场景与注意

适合需要频繁连接多台远程服务器、希望在 DSH 中统一管理 SSH 主机与远端工作区的开发者。插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。Windows 客户端暂不支持,官方 dsh-ssh provider 只面向 POSIX 客户端。

短结尾

这个插件通过统一的侧栏入口和状态管理,让 SSH 主机与远端工作区编排变得可复现、可追溯。通过独立远端窗口和同窗口混合模式,可以兼顾隔离性与上下文复用。更多细节可访问插件目录页或 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye