DSH SSH / WSL / Docker Workspaces
把 SSH 服务器、WSL 和 Docker 容器里的项目,直接放进 DeepSeek Harness 当前窗口的项目侧栏。
不用为每台机器再打开一个 DSH 窗口。在左侧 远程工作区 中添加目录,就能与本机项目一起管理。需要完整的远程开发环境时,让 Agent、终端和任务在远端 DSH 中运行,并按需把本机 Skill 同步过去;希望保留本机 Agent 和模型配置时,可以使用本项目的轻量模式。
npm 安装包 · 使用指南 · 问题反馈 · MIT License

截图来自真实 DSH 和 WSL 连接,使用独立的公开演示项目。
可以做什么
远程项目,也在原生侧栏里
- 同一个窗口管理本机、SSH、WSL 和 Docker 项目:使用 DSH 原生工作区和会话列表。
- 独立的左侧入口:点击「远程工作区」即可添加、浏览和管理连接。
- 远程目录浏览:直接输入项目绝对路径,或浏览目录后添加。
- 可识别的远程标记:项目标题旁显示主机图标,悬停可查看目标、连接状态和运行模式。
图标颜色会随连接状态更新:绿色为已连接,灰色为未连接,黄色为连接中,红色为连接异常。保存过项目,并不代表它当前在线。
轻量、全量两种模式,按项目选择
轻量模式是本项目的特色能力:继续使用本机 Agent、模型配置和 DSH 可见的 Skill,只把文件和项目命令放到远端。全量模式适合把 Agent、终端和任务都放在服务器、WSL 或容器里运行的场景。
| 能力 | 轻量模式 | 全量模式 |
|---|---|---|
| 远端安装 DSH | 不需要 | 首次连接自动部署 |
| Agent 和模型配置 | 使用本机 DSH | 使用远端 DSH |
| 项目文件 | WSL 共享、SSHFS 或 Docker 的已有共享/挂载 | 远端原生文件访问,无需 SSHFS |
| 本机 Skill | 沿用本机 DSH 的技能,脚本仍受远程执行环境限制 | 可勾选同步,比较差异后更新 |
| 执行命令 | 远程 Bash,每次独立执行 | 远端 DSH 原生工具 |
| 原生终端、后台任务、PTC、子代理 | 不支持,使用 Native 工具模式 | 接入远端 DSH,具体能力取决于其配置 |
| WSL 需要 SSH 服务 | 不需要 | 不需要 |
模式以后也能切换。 在已保存项目的「连接设置」中重新选择模式,再点击「以该模式连接」。两种模式使用同一个远程目录,分别保留工作区入口和会话历史;切回原模式后,可以继续原来的对话。
切换模式不会迁移旧对话,也不会停止原模式中正在运行的任务。SSH / Docker 切回轻量模式时,需要有对应的共享或挂载路径。

选择本机 Skill,同步给远端 Agent
在已连接的全量工作区中点击 同步 Skill,即可查看本机默认 Agent 预设能发现的用户技能和自定义技能:
- 按需选择:支持搜索、逐项勾选、选择缺失项和清空选择。
- 先比较再同步:显示「远端缺少」「内容不同」「已一致」或不可同步的原因;默认只选中缺失项。
- 更新需要明确选择:允许覆盖后,仍需另外勾选内容不同的技能,不会自动选中覆盖。
- 携带技能资源:同步指令与技能目录内的脚本、参考资料和资产,保留可执行权限;不复制
.env、Git、依赖目录或缓存。 - 保留远端独有技能:只写入所选条目。两端内容变化或连接变化后,需要刷新列表,避免覆盖刚修改的内容。
同步到远端用户技能目录,同一远端用户的其他项目也可使用;项目级同名技能仍按 DSH 的优先级生效。脚本需要的 Python 包、可执行程序和系统路径需在远端准备。同步不会把 Windows 程序或本机 MCP 一起搬过去。

Docker 也作为远程项目连接
支持三种入口:本机 Docker、已配置的 Docker Context,以及 SSH 服务器上的 Docker。可读取容器列表、指定容器内用户、浏览项目目录;容器无需单独开放 SSH 端口。
- 全量模式:通过
docker exec在容器内运行 DSH,使用容器内的文件、终端和任务。 - 轻量模式:使用已有 bind mount 或其他双向共享路径访问文件,本机 Agent 通过
docker exec执行项目命令。 - 稳定的容器身份:首次连接保存完整容器 ID,名称用于展示。同名容器重建后需要重新添加,旧会话不会悄悄连到另一个容器。
- 明确的生命周期:连接已有的运行中容器;不会代替你启动、停止或重建容器。断开全量连接不会停止容器及其中的 DSH。

SSH 支持密码、密钥和证书
轻量和全量模式均提供四种登录方式:
| 登录方式 | 如何使用 |
|---|---|
| 自动选择 | 沿用本机 OpenSSH 配置、默认私钥或 ssh-agent,支持 ~/.ssh/config 的 Host 别名 |
| 仅密码 | 输入 SSH 登录密码,只尝试密码认证 |
| 密钥 | 选择或填写本机 OpenSSH 私钥路径;加密私钥可填写口令 |
| 证书 | 使用 OpenSSH 用户证书及配套私钥,需要服务器信任签发 CA |
桌面版支持选择密钥文件。密码和私钥口令只保留在本机 DSH 进程内,重启 DSH 后按需重新填写;连接记录只保存密钥和证书的路径,不上传私钥内容。

连接、断开、重连都有明确结果
- 打开:在该项目中新建会话;继续旧对话请从侧栏选择原会话。
- 连接 / 重新连接:恢复项目连接;需要补充密码或切换模式时,进入「连接设置」。
- 断开:保留项目入口、文件和历史。手动断开后不会被状态刷新自动连回,重启客户端后也保持断开。
- 移除登记:从项目列表撤下该模式的入口,保留远端文件和会话历史。
全量模式断开的是本机连接隧道,远端 DSH 和任务继续运行。多个全量项目共用同一后端时会一起离线,卡片中会提示影响范围。轻量模式断开会取消插件正在执行的远程命令,不会卸载你管理的 SSHFS 挂载。
安装
插件版本 0.3.0,已实机验证 DSH 0.2.2-rc.1。本版 Skill 同步已通过真实 DSH / WSL 验证;Docker 已完成连接参数、认证、容器身份和界面回归,当前测试环境没有可用的 Docker daemon,尚未完成真实容器验收。DSH 声明的兼容范围不等于所有版本都已测试。
安装到官方桌面客户端的 desktop profile:
dsh plugin --profile desktop add dsh-ssh-workspaces@0.3.0
使用 dsh web 时安装到 web profile:
dsh plugin --profile web add dsh-ssh-workspaces@0.3.0
安装后重启客户端或 dsh web 一次。 后续添加和打开远程项目都在原窗口中完成。自定义启动方式请将 profile 名替换为实际使用的名称。
找不到 dsh 命令时,可在官方客户端的「应用 → 管理 dsh 命令」中配置。也可以在客户端的插件管理界面中,使用 npm 包名 dsh-ssh-workspaces 安装。
第一次使用
添加 WSL 项目
- 点击左侧 远程工作区 → WSL,选择已安装的发行版。
- 选择轻量或全量模式。只需要本机 Agent 配合 WSL 文件和命令,可以先用轻量模式。
- 填写 Linux 项目绝对路径,例如
/home/dev/projects/demo,也可以点击「浏览目录」。用户名留空时使用发行版默认用户。 - 点击「测试连接」,再点击「添加到工作区」。
- 在保存的项目卡片中点击「打开」,之后即可从侧栏进入项目和会话。
WSL 中需要 Python 3 和 Bash。全量模式首次连接还需要下载 Node / DSH;已有符合要求的 Node 时会复用。
添加 SSH 项目
- 在终端用系统
ssh登录目标机器,核对首次连接的主机指纹。 - 点击 远程工作区 → SSH,填写主机或 SSH 别名、端口和用户名。
- 选择登录方式,并填写密码、私钥或证书信息。
- 选择运行模式并填写远程项目目录。轻量模式还需准备 SSHFS 挂载;全量模式无需挂载。
- 测试连接,点击「添加到工作区」,然后打开项目。
全量模式使用远端自己的模型配置。 插件不会复制本机 API Key、登录信息或第三方插件。首次使用前,请为远端 DSH 配置可用的模型提供方,详见全量模式准备。
添加 Docker 项目
- 点击 远程工作区 → DOCKER,选择 Docker 所在位置。
- 本机 / Context 方式可填写已有 Context 名称;SSH 方式填写宿主机的登录信息。
- 点击「读取容器」,选择运行中的容器,或直接填写名称 / ID。
- 填写容器内项目目录,按需指定容器内用户。
- 选择运行模式。轻量模式填写已与容器目录双向共享的本机路径;全量模式无需挂载。
- 测试并添加。连接全量项目后,可从卡片的「同步 Skill」选择本机技能。
使用前了解
- 当前主要面向 Windows 桌面客户端和 Linux / WSL / Linux 容器远端。 全量后端要求 glibc Linux;自动安装 Node 支持 x64 / arm64。Alpine / musl 容器可考虑有共享路径的轻量模式。macOS / Linux 本机尚未实机验证。
- 轻量 SSH 的挂载必须真实存在。 普通本机文件夹不是 SSHFS 挂载;指定密码、密钥或证书时,需先用同一凭据建立挂载。
- 全量部署不需要 root。 DSH 安装在远端用户目录,服务只监听其
127.0.0.1,经 SSH、WSL 或 Docker exec 通道连接。 - 首次 SSH 指纹核对在终端完成。 插件遵循严格主机密钥校验,不会跳过未知或变更的主机指纹。
详细的认证、Docker 环境、Skill 同步和故障处理见使用指南。与 ZCode 的能力对应关系及当前边界见远程能力对照。
开发与反馈
欢迎通过 GitHub Issues 反馈问题。请说明插件版本、DSH 版本、操作系统、连接方式(SSH / WSL / Docker)、运行模式和复现步骤;日志与截图中请先移除凭据及私人项目内容。
源码构建、验证和实现说明见开发指南。参与维护请阅读 AGENTS.md,功能变更应同步更新使用文档和截图。
同窗远程项目的交互参考了 ZCode。项目基于 DeepSeek Harness 的插件机制开发,轻量 SSH 可搭配 SSHFS-Win 使用。
No comments yet. Be the first to write one.