dsh-ssh-plugin:DeepSeek Harness SSH 远程执行插件

DeepSeek Harness (DSH) 生态支持插件化扩展。对于需要在远程 Linux 服务器上执行操作的场景,直接编写 Shell 脚本或硬编码 SSH 命令较为繁琐。dsh-ssh-plugin 为此提供了解决方案,它通过系统自带的 SSH 客户端为模型增加了远程执行能力,并支持持久化连接管理。

插件定位

该插件由 Azurer0121 维护,开源协议为 MIT。它通过注册 ssh_exec 和 ssh_connections 两个模型工具,解决了智能体与远程服务器交互的痛点:模型可以直接执行远程命令,无需人工介入。

核心功能

插件主要包含以下能力:

  1. ssh_exec 工具:允许模型在远程 Linux 服务器上执行 Bash 命令。
  2. ssh_connections 工具:管理持久化的 SSH 连接配置,支持保存、绑定工作区和列出可用主机。
  3. 密钥认证:仅支持基于密钥的身份验证(BatchMode=yes),不进行密码/私钥短语提示,确保快速失败而非挂起。
  4. SSH Config 集成:自动识别并使用本地的 ~/.ssh/config 文件中的主机别名,无需手动保存。
  5. 双端支持:在宿主端注册设置命名空间,在浏览器端提供设置卡片界面。
  6. 优雅降级:当缺少 settings 或 workspaceRegistry 等服务时,插件会自动降级,不影响基础功能。

安装与启用

通过 npm、GitHub 仓库或本地目录安装。如果是本地检出,需要先构建。

# 从 npm 安装
dsh plugin --profile <name> add dsh-ssh-plugin

# 从 GitHub 安装
dsh plugin --profile <name> add github:Azurer0121/dsh-ssh-plugin

# 从本地目录安装(需先构建)
dsh plugin --profile <name> add ./dsh-ssh-plugin

本地安装前需执行构建命令:

cd dsh-ssh-plugin
pnpm install && pnpm bundle

安装后,通过 dsh --profile <name> 启动 Harness。

典型用法

ssh_exec

模型获得 ssh_exec 工具,支持自然语言指令或显式参数调用。

显式参数示例:

参数 是否必需 说明
host 是 远程主机,格式为 [user@]host,或 ~/.ssh/config 中的别名。
command 是 在远程执行的 Bash 命令。
port 否 SSH 端口,默认 22。
key_path 否 私钥绝对路径,省略则使用默认路径或 ssh-agent。
timeout_ms 否 前台超时时间(毫秒),默认 30000。
connection 否 已保存连接的标签,用于填充 host/port/user/keyPath。

自然语言示例:
模型可以理解类似“ssh 到 root@10.0.0.5 并显示磁盘使用情况”的指令。

ssh_connections

用于管理持久化连接,数据保存在 Harness 的设置中,重启后依然存在。

  • save: 保存一个新的连接配置(标签、主机、端口、用户、密钥路径)。
  • list: 列出保存的连接,并包含从 ~/.ssh/config 发现的主机(只读)。
  • delete: 删除指定标签的连接(同时解绑相关的工作区)。
  • use: 将当前工作区绑定到某个连接标签。绑定后,ssh_exec 可省略 host 参数,直接使用默认连接。

适用场景与注意

  • 远程运维:自动化查看服务器状态、日志分析或文件操作。
  • 环境隔离:利用工作区绑定功能,不同项目使用不同的 SSH 配置。

注意事项:

  1. 无密码交互:插件不处理密码或私钥短语提示。如果密钥未配置或无权限,SSH 会立即失败。
  2. 命令传输方式:远程命令通过 SSH 的 stdin 传输至 bash -s,因此 Shell 转义规则与本地 Bash 一致。
  3. 配置发现:~/.ssh/config 的读取是尽力而为的,配置文件缺失或不可读不会导致插件报错,只会显示空列表。
  4. Windows 权限限制:在 Windows 系统上,必须使用 danger-full-access 沙盒策略的会话运行,否则 ssh.exe 可能因权限不足无法启动。
  5. 密钥安全:插件仅存储密钥文件路径,密钥内容永远不会离开磁盘。

总结

dsh-ssh-plugin 为 DeepSeek Harness 提供了标准化的 SSH 远程执行能力。通过对接本地的 SSH 客户端和配置文件,它降低了智能体与远程基础设施交互的门槛。开发者在使用前应确保目标服务器支持基于密钥的 SSH 访问,并在 Windows 环境下配置正确的沙盒策略。

相关链接:
* 插件目录:azurer0121/dsh-ssh-plugin
* GitHub 仓库:Azurer0121/dsh-ssh-plugin

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

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

小夜