前言¶
DeepSeek Harness (DSH) 的架构基于浏览器,本地机器仅作为显示层。当需要在远程服务器上运行 DSH 实例时,dsh-plugin-ssh 插件实现了这一功能——本地机器作为“瘦客户端”,通过 SSH 隧道连接远程的 DSH 实例,这与 Codex Remote 的模型一致。
插件简介¶
该插件由 ArcherLyu 维护,开源协议为 MIT。它允许你通过 SSH 管理远程的 DeepSeek Harness 实例,本地机器只负责打开浏览器显示远程的 Web GUI。插件包含两部分:一个独立的 dsh-ssh 命令行工具,以及一个集成到 dsh web profile 的配置包,后者会在设置中添加 SSH Remotes 面板。
核心功能¶
- 远程管理:通过 SSH 管理远程的 DeepSeek Harness 实例。
- 瘦客户端模式:本地机器仅作为显示层,不运行繁重的逻辑。
- 独立 CLI:提供
dsh-ssh命令行工具,支持一系列操作命令。 - Web 面板集成:通过 dsh profile bundle 将 SSH Remotes 面板添加到本地 Web GUI 的设置中。
- 核心命令:支持配置管理(add, rm, list)、连接控制(connect, disconnect, open)、远程操作(setup, start, stop, logs)。
安装与启用¶
在使用前,请确保本地环境满足以下前提条件:
* dsh 版本 >= 0.1.0-rc.6 (web profile)
* ssh 命令在 PATH 中
* pnpm 已安装
安装插件到本地 web profile,下次启动 dsh web 时生效:
dsh plugin --profile web add /path/to/dsh-plugin-ssh
使用示例¶
- 添加远程实例配置:指定主机、用户和工作区路径。
dsh-ssh add prod --host my-server --user deploy --workspace /srv/app
- 配置远程环境:插件会在远程服务器上安装必要的依赖、创建工作区,并可选地复制本地配置文件。
dsh-ssh setup prod --copy-settings
- 连接并打开:建立 SSH 隧道并在浏览器中打开远程 DSH 的 Web 界面。
dsh-ssh connect prod
- 查看状态与日志:检查隧道状态、远程进程状态以及 harness 的日志。
dsh-ssh status prod
dsh-ssh logs prod
在本地 Web GUI 的 Settings → SSH Remotes 面板中,也可以看到所有配置的远程实例,并直接通过按钮执行 Connect、Open、Disconnect、Start、Stop 或 Logs 操作。
工作原理¶
插件主要分为两部分运行:
1. CLI 工具 (dsh-ssh):在本地运行,负责生成 SSH 隧道命令并管理本地配置文件。
2. Profile Bundle:安装在本地 web profile 中,提供 /ssh-remotes HTTP 路由和 GUI 面板。
本地 dsh-ssh connect 命令会执行 ssh -N -L 开启一个隧道,将远程的 127.0.0.1:<remote-port> 映射到本地的一个端口。远程的 DSH harness 仅绑定在 127.0.0.1 上,不直接暴露给网络,所有流量必须通过本地建立的 SSH 隧道进入。
注意事项¶
- 认证模式:SSH 隧道运行时开启
BatchMode=yes,不支持交互式密码输入,必须配置密钥认证或 SSH Agent。 - 端口绑定:远程 harness 默认绑定在
127.0.0.1,仅可通过 SSH 隧道访问。 - 安全限制:本地的
/ssh-remotes路由会拒绝非回环地址的 Origin 头,防止跨域访问。 - LLM 凭证:远程 harness 读取
$DSH_HOME/settings.yaml和工作目录下的.env文件。如果使用--copy-settings,请确保远程服务器的凭证配置正确。