dsh-lab-ssh:DeepSeek Harness 的安全受控 SSH 开发工具

前言

在 DeepSeek Harness(DSH)的插件化工作流中,一个运行在工作站上的智能体可能需要使用实验室服务器的 GPU、运行时和已配置源工作区,同时服务器仍要与公网隔离。直接给智能体一个普通 SSH 终端,会暴露任意主机、命令和文件路径。dsh-lab-ssh 为 DeepSeek Harness 和标准 MCP 客户端提供一组安全受控的 SSH 开发工具。

这是一个独立社区插件,不是 DeepSeek AI 官方包。Version 0.3.0 是实验预览;实验室部署前应固定经过测试的 DeepSeek Harness 版本。GitHub 仓库为 https://github.com/gdgfd22/deepseek-harness-ssh,许可证为 MIT。

核心能力

dsh-lab-ssh 的主要能力包括:

  • 固定对模型可见的主机别名,而不是暴露任意 SSH 目标。
  • 固定 OpenSSH SHA256 主机密钥指纹。
  • 凭据可以引用环境变量、本地密钥文件或 SSH Agent。
  • 按主机配置命令允许列表、自动批准规则和拒绝规则。
  • 限制命令输出和超时。
  • 基于别名的远程目录根目录,并进行规范包含检查。
  • 有界 UTF-8 读取,以及原子、哈希保护的写入。
  • 支持可选的别名命令工作目录。
  • 提供默认禁用的 HTTPS 工件桥接,面向离线服务器。
  • 同一份 JSON 策略可同时用于 DeepSeek Harness 和 Codex MCP。
  • 提供 stdio MCP 服务器实现。

不提供

该插件不提供:

  • 任意主机访问;
  • 交互式 shell;
  • 内联密钥;
  • 无限制文件传输;
  • 删除、移动或 chmod 操作;
  • 后台命令;
  • 端口转发;
  • 反向隧道;
  • SSH agent forwarding。

通用 SOCKS/HTTP 代理、SSH 转发和反向隧道仍在范围外,以保留服务器网络隔离。

安装与启用

运行环境要求:

  • Node.js ^22.19>=24
  • DeepSeek Harness 0.1.0-rc.7 或兼容的 0.1.x preview;
  • dsh plugin 需要 pnpm 在 PATH 中。

构建并安装:

Set-Location <PLUGIN_DIR>
npm install
npm run build
npx -y @deepseek-ai/dsh@0.1.0-rc.7 plugin --profile web add <PLUGIN_DIR>

这一步先在插件目录安装依赖并构建,再把本地插件目录注册到 web profile。

配置与运行

把示例配置复制到仓库外,替换所有占位符,然后让 DSH user patch 指向该文件。例如:

- id: lab-ssh
  config:
    configFile: C:/Users/<USER>/.dsh/lab-ssh.private.json

如果凭据使用环境变量,需要在启动 DSH 的同一进程中设置,例如:

$env:LAB_SSH_GPU01_PASSWORD = '<enter locally>'
npx -y @deepseek-ai/dsh@0.1.0-rc.7 web

也可以直接启动 MCP 服务器:

node <PLUGIN_DIR>/lib/mcp-server.js --config <PRIVATE_CONFIG_PATH>

直接启动时使用私有配置路径,不要把真实配置放入仓库。

工具接口

插件提供以下工具:

  • ssh_list_hosts:列出已配置主机别名。
  • ssh_list_file_roots:列出目录别名和访问策略。
  • ssh_list_directory:列出授权根目录下的条目。
  • ssh_read_file:读取有界 UTF-8 文本。
  • ssh_write_file:创建或原子替换有界 UTF-8 文本,写入带哈希保护。
  • ssh_exec:在固定主机和可选目录别名上运行允许列表命令。
  • ssh_stage_artifact:暂存单个工件。

工件桥接

HTTPS 工件桥接默认禁用,且不是透明代理。它会对重定向做管理员域名允许列表校验,执行大小限制和强制可信 SHA256,并在受控远程目录中创建文件。已有文件不会被替换。

开发验证

在插件目录中运行:

npm install
npm run typecheck
npm test
npm run build
npm run pack:check

这一步用于类型检查、测试、构建和打包检查。

安全注意

  • 插件会在启动 DSH 的进程中运行,因此会具有该进程的权限;安装前检查源码、依赖和 MIT 许可证。
  • 不要提交或发布真实 SSH 配置、凭据、日志、本地 profiles、构建输出和压缩包。
  • 不要把私有配置文件放在仓库内。
  • 0.3.0 为实验预览;实验室部署前固定经过测试的 DSH 版本。

小结

dsh-lab-ssh 的价值在于把 DSH 或 MCP 客户端对远程实验室服务器的访问限制为固定主机、固定路径、固定命令和可审计工件流程。GitHub 仓库:https://github.com/gdgfd22/deepseek-harness-ssh

羽毛球分组比赛记分
小程序二维码

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

Xiaoye