dsh-hillstone-cli-ops:在 DSH 里管 Hillstone / StoneOS 设备

前言

在 DeepSeek Harness(DSH)里做网络设备运维,常见做法是:设备清单在表格或脚本里,SSH 另开终端,审计与「助手能执行什么命令」往往和对话界面脱节。助手若要代你登录、跑命令、看输出,还要自己拼 ssh 或临时脚本,和你在面板里看到的状态也对不上。

下面介绍社区插件 dsh-hillstone-cli-ops(展示名「Hillstone 设备运维」):把 Hillstone / StoneOS 设备收进 DSH 右侧栏,并提供 9 个 hillstone_* 工具,让 agent 与人在同一套会话、日志和策略下操作设备。维护者为 jazhu;在 SkillHub 目录中分类为工作流。插件以 MIT 许可证发布,当前 package 版本为 1.1.1(以仓库 package.json 为准)。

这是什么

dsh-hillstone-cli-ops 是一个典型的「两半式」DSH 插件:

  • Host 侧(Node):SSH、凭据加解密、会话审计、执行策略校验,以及注册给 agent 的工具。
  • Client 侧(浏览器):右侧栏「设备运维」标签页,内嵌 xterm.js 终端。

构建产物已提交在 dist/:ssh2 及其纯 JS 依赖闭包、xterm 分别打进 dist/index.mjs 与 dist/client.js,因此安装目标机无需再构建,运行时也不依赖插件目录旁的 node_modules 来解析 ssh2 / xterm。可选能力 WebUI 登录 通过动态加载 playwright 驱动本机 Chromium,属于 optionalDependency。

右侧栏「设备运维」四个子页

打开 DSH 右侧栏的 「设备运维」 标签后,有四个子页:

子页 作用
设备管理 设备的增删改查:名称、IP、账号、密码、SSH 端口、设备类型、Web 端口、备注。新增、复制、编辑共用居中对话框。卡片名称行右侧提供 CLI 登录(SSH 终端)与 WebUI 登录(浏览器)。名称前有存活指示灯:绿可达、红不可达,首次扫描前不显示。
终端 每个活跃连接对应一个 xterm.js 终端;输入发往 host,设备输出经 SSE 回传。新建连接会自动切到「终端」子页,便于直接看到会话。
日志 按连接的审计:谁连哪台设备、输入内容、执行过的命令、会话结束时间与原因。
执行策略 由你编写的规则:绑定每日时间窗口与命令模式;助手触发的命令若落在窗口内且匹配模式,host 在发出 SSH 前拒绝并记录原因。完整语义见仓库 docs/执行策略.md。

注册给 agent 的 9 个工具

插件向 DSH 注册以下工具(名称与 README 一致):

  • hillstone_list_devices
  • hillstone_open_terminal
  • hillstone_send_input
  • hillstone_get_output
  • hillstone_close_terminal
  • hillstone_list_sessions
  • hillstone_run_and_analyze
  • hillstone_scan_liveness
  • hillstone_web_login

其中 hillstone_run_and_analyze 可批量执行命令,并把输出交给 host 侧 LLM,配合自然语言任务(例如「检查接口状态和 CPU 负载」)。默认会复用操作者已在标签页打开的终端会话,便于在「终端」里观察 agent 操作;若无 live session,则回退为一次性 exec 通道。

hillstone_scan_liveness 以数据形式返回各设备 TCP 可达性,与设备卡片上存活灯探测一致,便于 agent 区分离线与环境不可达,而不必依赖面板肉眼查看。

hillstone_web_login 驱动设备管理 UI 登录并返回结论(就绪 / 验证码 / 错误);若需验证码,会保留窗口供人工完成。

WebUI 登录(可选 Playwright)

设备卡片上的 WebUI 登录 与 CLI 登录 并列,访问地址形如:

https://<device ip>:<web port or 443>/

使用前需了解 README 中的三点:

  1. 密码不会进入面板前端。Host 解密后在浏览器表单中填入,仅向界面回报 已登录 / 需人工完成 / 失败;client 侧拿不到密码。
  2. 只尝试一次登录。错误密码后设备往往要求图形验证码,继续自动重试容易锁死;失败时报告 需人工完成 并保留窗口。
  3. 浏览器 profile 持久化 在 <data dir>/webui/<device id>,同一设备再次点击通常可直接复用已登录会话。

该按钮在运行 DSH 的机器上启动有界面的 Chromium(Playwright 自带),会占用屏幕区域,不是无头探测。除 WebUI 外,设备管理、SSH 终端、审计日志与其余 agent 工具均可在未安装 Playwright 时使用;按钮会提示需要执行的安装命令,而不会导致整个插件无法加载。

若需 WebUI 功能,在插件所在环境安装 Playwright 与 Chromium(例如 link: 拷贝目录时):

pnpm add playwright
npx playwright install chromium

安装与启用

环境要求:Node 22+(engines 声明);DSH 构建需暴露 tools、slots、sidebarRightTabs、sidebarRight、uiWorkspace 等服务。

安装后需重启 DSH 主进程。仅禁用再启用插件不会重建运行中进程的 host fiber,SSH、工具与日志写入等新 host 代码要在真实重启后生效。

从 git 安装(无需构建)

仓库已提交 dist/,无 prepare 脚本,因此 git 依赖安装时无需构建,也无需在 pnpm ≥ 10 配置 allowBuilds:

dsh plugin add github:jazhu/dsh-hillstone-cli-ops#<sha>

将 <sha> 换为你要固定的 commit。

从 tarball 或 npm

包内 files 仅含 dist/、locale/、cordis.patch.yml,到货即可加载。README 示例:

pnpm pack && <your-dsh-plugin-install-command> ./dsh-hillstone-cli-ops-1.0.0.tgz

打包后的文件名随版本变化,以 pnpm pack 实际产出为准;<your-dsh-plugin-install-command> 以你使用的 DSH 插件安装方式为准(README 未替换成单一固定命令)。

开发检出(供对照,非读者必做)

维护者在 README 中给出的开发流程为 clone 后 pnpm install(仅 devDependencies)、pnpm test;pnpm run build 可选,用于从 src/ 再生 dist/。本文任务不要求读者 clone 仓库。

典型用法思路

  1. 在 设备管理 录入 Hillstone / StoneOS 设备(IP、SSH 端口、账号等),用存活灯或让 agent 调用 hillstone_scan_liveness 确认可达。
  2. 点击 CLI 登录 或让 agent 使用 hillstone_open_terminal / hillstone_send_input / hillstone_get_output 在「终端」子页协作;会话细节可在 日志 中追溯。
  3. 在 执行策略 配置时间窗口与命令模式,约束助手在敏感时段不得执行匹配命令。
  4. 需要批量诊断时,让 agent 调用 hillstone_run_and_analyze,并指定自然语言分析任务;若你已在终端开着会话,可在同一面板观察输出。
  5. 管理面登录可走 WebUI 登录 或 hillstone_web_login;遇验证码时在 Playwright 打开的窗口中人工完成。

适用场景与注意

适合:已在 DSH 中开发或运维 Hillstone / StoneOS 防火墙/网关,希望设备清单、SSH、审计与 agent 工具在同一界面闭环的团队或个人。

务必注意:

  • 插件 host 逻辑以当前 DSH 进程的身份与权限运行,可 SSH 到内网设备、读写本地数据目录(含 WebUI profile 与会话日志)。安装前应阅读 GitHub 源码 与 MIT 许可证,确认凭据存储与策略语义符合你的安全基线。
  • SkillHub(插件目录页)是社区插件索引,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本文介绍的是社区维护的工作流类插件之一。
  • GitHub 仓库公开星标数为 0(以目录线索为准),不代表功能完整度,仅作生态可见度参考。

结尾

dsh-hillstone-cli-ops 把 Hillstone / StoneOS 的设备管理、SSH 终端、连接审计与执行策略收进 DSH 右侧栏,并用 9 个 hillstone_* 工具让 agent 在同一套会话与规则下协作。dist 内联 ssh2 与 xterm,git / npm / tarball 安装路径均免构建;WebUI 登录按需加装 Playwright 即可。

  • 目录页:https://www.skillhub.cn/plugins/jazhu/dsh-hillstone-cli-ops
  • 源码与 README:https://github.com/jazhu/dsh-hillstone-cli-ops
羽毛球分组比赛记分
小程序二维码

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

Xiaoye