前言¶
在 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_deviceshillstone_open_terminalhillstone_send_inputhillstone_get_outputhillstone_close_terminalhillstone_list_sessionshillstone_run_and_analyzehillstone_scan_livenesshillstone_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 中的三点:
- 密码不会进入面板前端。Host 解密后在浏览器表单中填入,仅向界面回报 已登录 / 需人工完成 / 失败;client 侧拿不到密码。
- 只尝试一次登录。错误密码后设备往往要求图形验证码,继续自动重试容易锁死;失败时报告 需人工完成 并保留窗口。
- 浏览器 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 仓库。
典型用法思路¶
- 在 设备管理 录入 Hillstone / StoneOS 设备(IP、SSH 端口、账号等),用存活灯或让 agent 调用
hillstone_scan_liveness确认可达。 - 点击 CLI 登录 或让 agent 使用
hillstone_open_terminal/hillstone_send_input/hillstone_get_output在「终端」子页协作;会话细节可在 日志 中追溯。 - 在 执行策略 配置时间窗口与命令模式,约束助手在敏感时段不得执行匹配命令。
- 需要批量诊断时,让 agent 调用
hillstone_run_and_analyze,并指定自然语言分析任务;若你已在终端开着会话,可在同一面板观察输出。 - 管理面登录可走 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