Saltar al contenido principal
C

dsh-ssh-workspace

czp0312/dsh-ssh-workspace

Keep SSH, WSL and Docker projects in the native DSH sidebar. Group directories by environment while choosing full remote DSH or lightweight local Agent mode per project. Manage shared full-backend connections together, keep lightweight connections independent, and selectively sync local Skills with difference previews. Aimed at the Windows desktop client with Linux, WSL or Linux-container remotes that have Python 3 and Bash (macOS and Linux hosts untested); lightweight SSH needs an existing SSHFS mount, and Docker has not yet been run against a live daemon.

Instalar

dsh plugin --profile web add github:czp0312/dsh-ssh-workspace

README

DSH SSH / WSL / Docker Workspaces

把 SSH 服务器、WSL 和 Docker 容器里的项目,直接放进 DeepSeek Harness 当前窗口的项目侧栏。

不用为每台机器再打开一个 DSH 窗口。在左侧 远程工作区 中添加目录,就能与本机项目一起管理。需要完整的远程开发环境时,让 Agent、终端和任务在远端 DSH 中运行,并按需把本机 Skill 同步过去;希望保留本机 Agent 和模型配置时,可以使用本项目的轻量模式。

npm 安装包 · 使用指南 · 问题反馈 · MIT License

按环境归组的远程项目:同一 WSL 下各项目独立选择模式,共享全量连接统一管理

截图来自真实 DSH 和 WSL 连接,使用独立的公开演示项目。

0.3.3 已调整管理界面布局,当前截图采集自 0.3.2,待重新实机截图。

可以做什么

远程项目,也在原生侧栏里

  • 同一个窗口管理本机、SSH、WSL 和 Docker 项目:使用 DSH 原生工作区和会话列表。
  • 独立的左侧入口:点击「远程工作区」即可添加、浏览和管理连接。
  • 环境下管理项目:同一 WSL、SSH 地址或 Docker 容器的目录放在可折叠的环境父项下。可按名称、设备、路径搜索,也能按模式、连接方式和离线状态筛选;原生侧栏继续使用 DSH 的工作区视图。
  • 同一设备添加多个目录:在环境标题旁点击「添加项目」,复用连接信息并选择另一目录。多个全量项目可共享实际后端,统一连接、断开和补充认证;界面列出操作影响的项目,搜索隐藏的项目也计入。
  • 模式属于项目:环境没有统一运行模式。同一 WSL 中可以同时保留全量的开发项目和轻量的脚本项目;轻量项目独立控制连接。
  • 远程目录浏览:直接输入项目绝对路径,或浏览目录后添加。
  • 可识别的远程标记:项目标题旁显示主机图标,悬停可查看目标、连接状态和运行模式。

图标颜色会随连接状态更新:绿色为已连接,灰色为未连接,黄色为连接中,红色为连接异常。保存过项目,并不代表它当前在线。

轻量、全量两种模式,按项目选择

轻量模式是本项目的特色能力:继续使用本机 Agent、模型配置和 DSH 可见的 Skill,只把文件和项目命令放到远端。全量模式适合把 Agent、终端和任务都放在服务器、WSL 或容器里运行的场景。

能力轻量模式全量模式
远端安装 DSH不需要首次连接自动部署
Agent 和模型配置使用本机 DSH使用远端 DSH
项目文件WSL 共享、SSHFS 或 Docker 的已有共享/挂载远端原生文件访问,无需 SSHFS
本机 Skill沿用本机 DSH 的技能,脚本仍受远程执行环境限制可勾选同步,比较差异后更新
执行命令远程 Bash,每次独立执行远端 DSH 原生工具
原生终端、后台任务、PTC、子代理不支持,使用 Native 工具模式接入远端 DSH,具体能力取决于其配置
WSL 需要 SSH 服务不需要不需要

模式以后也能逐项目切换。 点击项目行中的「项目模式」,在「此项目的运行模式」中重新选择,再点击「以轻量模式连接」或「以全量模式连接」。只为当前项目连接另一模式,同一环境的其他项目保持原模式;切回已有全量入口会复用健康连接,不强制重连其他项目。两种模式使用同一个远程目录,分别保留工作区入口和会话历史;切回原模式后,可以继续原来的对话。

切换模式不会迁移旧对话,也不会停止原模式中正在运行的任务。SSH / Docker 切回轻量模式时,需要有对应的共享或挂载路径。

每个项目独立设置运行模式,其他项目与原有会话保持原样

全量模式沿用 DSH 原生的会话、文件预览与终端体验,远程与本机请求按项目身份分流;连接失败时会明确报错。项目即使没有会话,也会出现在侧栏。轻量模式则专注于沿用本机配置、降低远端负担:适合快速修改、检查日志、运行测试和使用本机规范类 Skill。

选择本机 Skill,同步给远端 Agent

在已连接的全量工作区中点击 同步 Skill,即可查看本机默认 Agent 预设能发现的用户技能和自定义技能:

  • 按需选择:支持搜索、逐项勾选、选择缺失项和清空选择。
  • 先比较再同步:显示「远端缺少」「内容不同」「已一致」或不可同步的原因;默认只选中缺失项。
  • 更新需要明确选择:允许覆盖后,仍需另外勾选内容不同的技能,不会自动选中覆盖。
  • 携带技能资源:同步指令与技能目录内的脚本、参考资料和资产,保留可执行权限;不复制 .env、Git、依赖目录或缓存。
  • 保留远端独有技能:只写入所选条目。两端内容变化或连接变化后,需要刷新列表,避免覆盖刚修改的内容。

同步到远端用户技能目录,同一远端用户的其他项目也可使用;项目级同名技能仍按 DSH 的优先级生效。脚本需要的 Python 包、可执行程序和系统路径需在远端准备。同步不会把 Windows 程序或本机 MCP 一起搬过去。

真实 DSH 界面中的 Skill 选择与差异比较

Docker 也作为远程项目连接

支持三种入口:本机 Docker、已配置的 Docker Context,以及 SSH 服务器上的 Docker。可读取容器列表、指定容器内用户、浏览项目目录;容器无需单独开放 SSH 端口。

  • 全量模式:通过 docker exec 在容器内运行 DSH,使用容器内的文件、终端和任务。
  • 轻量模式:使用已有 bind mount 或其他双向共享路径访问文件,本机 Agent 通过 docker exec 执行项目命令。
  • 稳定的容器身份:首次连接保存完整容器 ID,名称用于展示。同名容器重建后需要重新添加,旧会话不会悄悄连到另一个容器。
  • 明确的生命周期:连接已有的运行中容器;不会代替你启动、停止或重建容器。断开全量连接不会停止容器及其中的 DSH。

真实 DSH 客户端中的 Docker 连接表单

SSH 支持密码、密钥和证书

轻量和全量模式均提供四种登录方式:

登录方式如何使用
自动选择沿用本机 OpenSSH 配置、默认私钥或 ssh-agent,支持 ~/.ssh/config 的 Host 别名
仅密码输入 SSH 登录密码,只尝试密码认证
密钥选择或填写本机 OpenSSH 私钥路径;加密私钥可填写口令
证书使用 OpenSSH 用户证书及配套私钥,需要服务器信任签发 CA

桌面版支持选择密钥文件。密码和私钥口令只保留在本机 DSH 进程内,重启 DSH 后按需重新填写;连接记录只保存密钥和证书的路径,不上传私钥内容。

SSH 登录表单提供登录方式、私钥路径和口令设置

连接、断开、重连都有明确结果

  • 打开项目:进入该项目的原生会话输入页;DSH 会复用可用的空白会话,继续旧对话请从侧栏选择原会话。打开失败会保留项目行并显示原因。
  • 全量连接:在环境内的「共享全量后端」统一连接或断开,显示全部受影响项目。不同用户或连接身份的后端分别显示,不能仅凭主机名称共用连接;「⋯」菜单提供重新连接和连接认证。
  • 轻量连接:每个项目独立连接或断开;「项目模式」用于补充凭据或切换模式。
  • 断开:保留项目入口、文件和历史。手动断开后不会被状态刷新自动连回,重启客户端后也保持断开。
  • ⋯ → 移除登记:确认后从项目列表撤下该模式的入口,保留远端文件和会话历史。
  • 远端登记失效:如果目录已在另一端的 DSH 中移除登记,项目行会显示异常并提供「重新添加目录」。恢复时使用原目录;旧会话不会悄悄关联到新的工作区身份。

全量模式断开的是本机连接隧道,远端 DSH 和任务继续运行。共享这个后端的全量项目会一起离线,轻量项目保持原状态;环境内有在线和离线项目时显示「部分连接」。轻量模式断开会取消插件正在执行的远程命令,不会卸载你管理的 SSHFS 挂载。

断开共享全量连接后,两个全量项目离线,轻量项目保持在线

安装

插件版本 0.3.3,已实机验证 DSH 0.2.2-rc.1。Windows 桌面客户端已验证全量项目侧栏显示;独立 WSL 项目已验证远端文件、终端、附件、断开重连及全量 → 轻量 → 全量后原会话保留。Skill 同步也已通过真实 DSH / WSL 验证。Docker 已完成连接参数、认证、容器身份和界面回归,当前测试环境没有可用的 Docker daemon,尚未完成真实容器验收。0.3.2 进一步实测了环境分组、共享连接、逐项目模式往返、筛选影响范围和窄布局。0.3.3 仅重构管理界面与交互,远程执行、连接存储和路由逻辑未改动,已通过类型检查、构建和客户端回归测试,未重新进行真实客户端验收。DSH 声明的兼容范围不等于所有版本都已测试。

安装到官方桌面客户端的 desktop profile:

dsh plugin --profile desktop add dsh-ssh-workspaces@0.3.3

使用 dsh web 时安装到 web profile:

dsh plugin --profile web add dsh-ssh-workspaces@0.3.3

安装后重启客户端或 dsh web 一次。 后续添加和打开远程项目都在原窗口中完成。自定义启动方式请将 profile 名替换为实际使用的名称。

找不到 dsh 命令时,可在官方客户端的「应用 → 管理 dsh 命令」中配置。也可以在客户端的插件管理界面中,使用 npm 包名 dsh-ssh-workspaces 安装。

第一次使用

添加 WSL 项目

  1. 点击左侧 远程工作区 → 添加项目 → WSL,选择已安装的发行版。没有已保存项目时,会直接显示添加表单。
  2. 选择轻量或全量模式。只需要本机 Agent 配合 WSL 文件和命令,可以先用轻量模式。
  3. 填写 Linux 项目绝对路径,例如 /home/dev/projects/demo,也可以点击「浏览目录」。用户名留空时使用发行版默认用户。
  4. 点击「测试连接」,再点击「添加到工作区」。
  5. 添加成功会返回项目列表。点击「打开项目」进入会话,之后从侧栏选择原会话继续工作。

WSL 中需要 Python 3 和 Bash。全量模式首次连接还需要下载 Node / DSH;已有符合要求的 Node 时会复用。

添加 SSH 项目

  1. 在终端用系统 ssh 登录目标机器,核对首次连接的主机指纹。
  2. 点击 远程工作区 → 添加项目 → SSH,填写主机或 SSH 别名、端口和用户名。
  3. 选择登录方式,并填写密码、私钥或证书信息。
  4. 选择运行模式并填写远程项目目录。轻量模式还需准备 SSHFS 挂载;全量模式无需挂载。
  5. 测试连接,点击「添加到工作区」,然后打开项目。

全量模式使用远端自己的模型配置。 插件不会复制本机 API Key、登录信息或第三方插件。首次使用前,请为远端 DSH 配置可用的模型提供方,详见全量模式准备。

添加 Docker 项目

  1. 点击 远程工作区 → 添加项目 → DOCKER,选择 Docker 所在位置。
  2. 本机 / Context 方式可填写已有 Context 名称;SSH 方式填写宿主机的登录信息。
  3. 点击「读取容器」,选择运行中的容器,或直接填写名称 / ID。
  4. 填写容器内项目目录,按需指定容器内用户。
  5. 选择运行模式。轻量模式填写已与容器目录双向共享的本机路径;全量模式无需挂载。
  6. 测试并添加。连接全量项目后,可从项目行的「同步 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 使用。

Plugins relacionados