前言¶
DeepSeek Harness (DSH) 将一切视为工作空间。传统的远程开发通常依赖 SSH 客户端或本地镜像同步,无法无缝融入 DSH 的工具链。该插件通过 SSH 协议将远程文件夹直接映射为 DSH 工作空间,使文件工具和 Shell 命令直接在远程主机上执行,无需本地镜像。
插件介绍¶
名称: dsh-remote-workspaces
维护者: januory
许可: MIT
包名: dsh-remote-workspaces
该插件通过一个“锚点”机制工作:在本地创建一个空的锚点目录并记录元数据,DSH 通过查找锚点将所有文件读写(SFTP)和搜索(ripgrep)操作路由到远程主机。它包含两部分:运行在 DSH 进程中的宿主端(处理路由与 SSH 传输)和浏览器端的设置界面。
核心功能¶
- 远程目录即工作空间:在浏览器中选择远程主机的目录并打开,DSH 会接管该目录。所有的文件工具(read/write/edit/grep/glob)和 Shell 命令直接在远程执行,不涉及本地镜像或同步。
- 多机注册表:支持添加、编辑、删除 SSH 主机(别名、主机、端口、用户、密钥或密码)。凭证在本地以 AES-256-GCM 加密存储,绝不发送回浏览器。
- SSH 配置导入:直接读取并导入
~/.ssh/config中的配置别名,自动填充连接表单。 - 连接测试:在使用前验证主机连通性。
- 透明工具路由:
read/write/edit通过 SFTP 传输。grep/glob运行远程 ripgrep。bash/pwsh通过 ssh2 exec 执行。- 命令路由跟随会话而非路径拼写,拒绝本地运行非工作目录路径。
- 策略感知的远程变更:DSH 的文件策略(如
read-only、workspace-write、danger-full-access)同样适用于远程工作空间。
安装¶
在 DSH 终端中运行以下命令安装插件:
dsh plugin --profile web add github:januory/dsh-remote-workspaces
使用方法¶
- 打开 Settings → Remote Workspaces。
- 添加一个 SSH 主机(可手动输入或从
~/.ssh/config导入),然后点击 Test connection 确认可用。 - 在添加工作空间的流程中,选择该远程主机,浏览目录并打开。
注意事项¶
- 前置环境:需要已安装 DeepSeek Harness(插件运行时解析宿主服务),宿主程序运行在 Node.js 22+ 上,插件本身要求 Node.js >= 18。
- 远程依赖:远程主机需要安装
rg(ripgrep)以支持搜索功能,以及sha256sum(或shasum)以支持写入后的校验。两者缺失时功能会降级。 - 传输依赖:仅依赖
ssh2库,无需外部 SSH 二进制文件。
结语¶
dsh-remote-workspaces 提供了一种将 SSH 远程目录作为一等公民接入 DSH 的方案,保持了 DSH 的沙箱隔离特性,同时支持基于策略的安全远程操作。