DeepSeek Harness SSH 远程工作区插件(多机并行版)

前言

DeepSeek Harness (DSH) 的插件化架构允许开发者通过插件扩展功能。在本地文件处理或单机 SSH 操作之外,管理多台服务器通常需要频繁切换连接。dsh-ssh-remote 插件解决了这个问题,它支持同时保持多个 SSH 连接,并为 Agent 提供直接查看、编辑和执行远程文件的能力。

这是一个基于 flymysql/dsh-remote 的 fork 项目,将传统的单连接池模型改造为多池并行连接模型。

维护状态与适配版本

本项目已于 2026 年 9 月 10 日停止维护。

  • 适配基准版本:@deepseek-ai/dsh@0.1.2-rc.1
  • 未验证版本:0.1.5-rc.1 及以后
  • 许可证:MIT

代码保持现状可用(仍为 MIT),但在 DSH 0.1.5+ 版本上不保证工作。

安装

安装过程建议在已安装 DSH 的环境进行。只需三步:

# 1) 克隆本项目
git clone https://github.com/chai1110/dsh-ssh-remote.git
cd dsh-ssh-remote

# 2) 一键安装(自动装依赖 + 注册 symlink + 创建 SSH 增强预设)
bash install.sh

# 3) 重启 DSH
kill $(pgrep -f 'dsh web') 2>/dev/null; dsh web

安装脚本会自动完成以下操作:
1. 安装依赖(如 ssh2)。
2. 创建 symlink 到 profile 的 node_modules。
3. 为官方模式(standard、code、minimal、cordis)增强同名用户 preset,使 SSH 工具直接出现在现有模式中。

功能特性

  • 多机 SSH 注册表:管理多台服务器配置(host、port、user、密码或私钥),存储于 ~/.dsh/remote-workspaces/machines.json。
  • 同时连接多台:每台机器拥有独立的连接池,互不干扰。
  • 远程工作区:为每台机器指定远程目录,本地镜像存储于 ~/.dsh/remote-workspaces/<host>/...。
  • 双向 SFTP 同步:支持 rw_sync(远程→镜像)和 rw_push(镜像→远程)。
  • Agent 远程操作工具:提供 rw_* 系列工具,支持文件浏览、读写、命令执行。
  • 设置面板:DSH Web 的设置页面中提供远程工作区管理界面,支持增删改查机器及测试连接。

工具用法

所有工具支持 machineId 参数指定目标机器,不传参数则默认为当前机器。

工具 作用
rw_info 查看所有已注册机器及连接状态、当前工作区。
rw_connect / rw_switch 注册新机器或切换当前机器。
rw_pick_workspace 为指定机器设置远程工作区目录。
rw_list_dir / rw_read_file 浏览远程目录、读取远程文件。
rw_write_file 直接写入远程文件(自动创建父目录)。
rw_exec 在远程执行 Shell 命令。
rw_sync / rw_push 远程与本地镜像同步。
rw_disconnect 断开指定机器的连接。

使用示例

Agent 可以直接通过对话驱动这些工具。例如:

  1. 注册并连接两台服务器:
rw_connect (host=192.168.1.10, user=root, privateKeyPath=/Users/me/.ssh/id_rsa)
rw_connect (host=192.168.1.20, user=root, password=xxx)
  1. 为第一台服务器设置工作区:
rw_pick_workspace (machineId=<第一台id>, path=/srv/app)
  1. 在远程执行命令并查看文件:
rw_exec (machineId=<第一台id>, command='docker compose ps')
rw_list_dir (machineId=<第一台id>, path=/srv/app)
rw_read_file (machineId=<第一台id>, path=/srv/app/src/main.py)
  1. 同步远程文件到本地:
rw_sync (machineId=<第一台id>)

注意事项

  • 本项目 fork 自 flymysql/dsh-remote,底层 SSH 引擎、SFTP 同步等组件来自该上游项目(BSD-3-Clause)。
  • 由于维护已暂停,若 DSH 官方版本升级至 0.1.5-rc.1 或更高,插件可能无法正常工作。
  • 插件以同名用户 preset 覆盖机制挂载,升级 DSH 后通常需要重新运行安装脚本。
羽毛球分组比赛记分
小程序二维码

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

小夜