DeepSeek Harness 插件

dsh-withSsh

Session-scoped SSH console for DeepSeek Harness(英文原文)

跳到安装方式

来源信息

GitHub 仓库
lhwu1/dsh-withSsh
最近更新
2026年8月21日
分类
记忆
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/lhwu1/dsh-withSsh
插件名:dsh-withSsh
作者:lhwu1

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

dsh-withssh

> 一个把 AI 协作、真实 SSH 终端和操作痕迹放在同一页面的运维工具。

dsh-withsshDeepSeek Harness 的 SSH 运维插件。它用于日常服务器巡检、故障排查和远程操作:在当前 AI 对话中连接一台服务器,人工和 AI 都可以执行命令,并且每一步的命令、返回日志和操作来源都能看见。

它不是替代 SSH 权限体系的自动化执行器,也不是第二个聊天窗口。它是一个让运维人员能够控制、观察和复盘 AI 参与服务器操作的可视化控制台。

![SSH 控制台总览](docs/images/ssh-console-overview.png)

适合谁用

  • 运维、SRE、平台工程师,需要在服务器上做巡检、日志排查、资源检查或日常维护。
  • 后端和开发人员,需要一边与 AI 讨论问题,一边在同一对话中核验远端命令的真实结果。
  • 团队负责人或值班人员,需要明确区分哪些操作由人工执行,哪些操作由 AI 建议并执行。
  • 不希望把 SSH 密码放进 AI 上下文、会话记录或插件持久化配置的用户。

能做什么

运维任务dsh-withssh 中的做法
查看服务器是否异常左侧查看 CPU、负载、内存、交换区和运行时间;在终端执行 topfreedfsystemctl 等命令。
排查日志与服务让 AI 执行日志搜索或服务状态命令,直接查看终端回显,再根据返回结果继续追问。
检查算力或进程占用AI 执行 GPU、NPU、进程或端口查询,结果同时显示在终端和 AI 对话中。
浏览服务器目录在右下只读文件树查看 / 下的目录、文件名、大小和修改时间。
人机协同操作人工随时在真实 PTY 终端输入命令;AI 只在当前会话已连接时使用 ssh_exec

一次运维协作如何进行

1. 在一个 DeepSeek Harness 对话中建立 SSH 连接,并核对服务器 Host Key 指纹。 2. 你可以直接输入人工命令,例如查看服务、读取日志、切换目录或运行诊断脚本。 3. 也可以直接告诉 AI“检查这台机器为什么负载高”或“确认加速卡是否被占用”。 4. AI 通过 ssh_exec 执行命令,终端立即出现命令和远端回显;AI 对话也收到标准输出、错误输出和退出码。 5. 你根据真实日志决定下一步,或继续让 AI 分析。整个过程保留在当前对话的终端和工具记录中。

命令与日志如何区分

操作者终端中的样式你能看到什么
人工原始 prompt 中的命令文字为蓝色你的命令通过当前会话的持久 PTY 执行,远端回显继续写入终端。
AI原始 prompt 中的命令文字为黄色,后面有 ?点击 ? 展开 AI 必填的中文命令说明;标准输出、错误输出和退出码显示在终端中,并作为 ssh_exec 结果回到 AI 对话。

黄色和蓝色只用于标明命令来源,不会改变正常终端输入方式,也不会把命令变成无法复制的展示卡片。终端输出可滚动查看。

![AI 命令、中文说明与终端回显](docs/images/ai-command-explanation.png)

AI 的 ssh_exec 调用与结果也保留在对话记录中,因此可以追溯 AI 运行了什么命令、服务器返回了什么、以及 AI 基于什么结果给出结论。

![对话中的 ssh_exec 调用和结果](docs/images/conversation-tool-trace.png)

控制台布局

  • 顶栏显示当前对话的连接状态和最近 AI 操作。一个 Harness 对话至多拥有一个 SSH 连接;切换对话时会先提醒,确认后才关闭原连接。
  • 左侧是服务器概览,包括主机、账号、Host Key 指纹、CPU、负载、内存、交换区和运行时间。
  • 右上是可滚动的真实终端。人工输入使用持久 PTY;AI 命令和返回结果也会写入同一终端流。
  • 右下是从 / 开始的只读文件树与目录表格,显示名称、修改时间、类型和大小。
  • 未配置 SSH 的对话只显示连接表单,不显示服务器状态、终端或文件列表。

从 GitHub 安装并使用

前提:已经安装可用的 DeepSeek Harness,并能在命令行使用 dsh。不需要先克隆本仓库,也不需要在 Harness 源码目录中开发。

以下命令将插件直接加入 Harness 的 web 配置档:

dsh plugin --profile web add github:lhwu1/dsh-withSsh

安装过程会使用仓库提交的预构建 lib/ 文件。首次安装不需要访问 D:/harness-lh-int8 或其他本地开发路径。

检查组合是否加载了插件:

dsh --profile web --dump-config

输出中应包含 dsh-withsshdsh-withssh-web。之后启动 Web 表层:

dsh --profile web --port 3080

在浏览器打开 http://127.0.0.1:3080/,进入一个对话,选择 SSH 控制台 标签页。

连接步骤:

1. 输入主机、端口、账号和密码,点击“连接服务器”。 2. 插件返回 sha256:... 主机密钥指纹后,与服务器管理员或可信记录核对。 3. 指纹确认无误后,再点击“确认并连接”。 4. 在右上终端直接输入人工命令,按 Enter 执行;按 Shift+Enter 换行。 5. 在对话中提出服务器操作需求。当前会话已连接时,AI 会知道 ssh_exec 可用,并会在需要时执行带中文说明的命令。

AI 工具调用的预期参数如下:

{
  "command": "/usr/local/hyhal/bin/hy-smi",
  "description": "再次查看加速卡占用情况,确认是否存在正在运行的计算任务"
}

description 必须包含中文。它不会发送到远端 shell,点击黄色命令后的 ? 才会在终端中展开显示。

更新与卸载

更新 GitHub 安装的插件:

dsh plugin --profile web update dsh-withssh

更新后重启运行中的 Harness,并强制刷新浏览器页面。卸载插件:

dsh plugin --profile web remove dsh-withssh

如果没有看到 SSH 控制台 标签,先运行 dsh --profile web --dump-config 检查两个插件条目,再重启 Harness。不要同时运行多个指向同一配置档的 Harness 实例。

安全行为

  • 密码仅短暂经过连接请求、插件进程内存和 ssh2 连接配置;连接建立或失败后,插件维护的凭据租约会被清理。密码不写入模型参数、动态上下文、Session 事件、终端历史或持久化文件。
  • 首次连接不会自动信任主机密钥,必须由用户确认 SHA-256 指纹。
  • AI 命令中的常见高风险模式,例如递归删除、格式化磁盘、关机、重启和危险权限修改,会请求 Harness 审批。人工终端输入仍由操作者负责。
  • 远端输出限制为 256 KiB,移除 ANSI/OSC 控制序列,并遮蔽常见 passwordsecrettoken 赋值形式;这不是完整的秘密检测系统。
  • 文件浏览器只读,不提供文件内容读取、上传、写入或删除操作。

限制

  • 该插件依赖 Harness Web 表层的同源访问模型,本身没有额外账号认证或 CSRF token。不要把 Web 端口暴露给不受信任的网络;生产环境应使用受保护的本地访问或 TLS 与反向代理认证。
  • 文件树可列出 SSH 账号有权限读取的目录名称、大小和修改时间,这些元数据可能敏感。
  • ssh_exec 的输出会成为 AI 的工具结果。即使终端输出做了常见遮蔽,也应避免执行会打印真实密钥、令牌或密码的命令。
  • AI 使用独立 SSH exec 通道,人工 PTY 的当前目录和环境变量不会自动同步。AI 长时间命令目前没有单独的取消按钮或执行超时。
  • 终端是有限的 PTY 转发和轮询刷新,不等同于完整 xterm.js 仿真。重启 Harness 会清理内存中的 SSH 连接。

本地开发

本地开发配置中的 TypeScript 类型路径指向相邻的 Harness 源码检出,因此先把两个仓库放在同一个父目录中:

workspace/
  deepseek-harness-master/
  dsh-withSsh/

然后构建:

git clone https://github.com/lhwu1/dsh-withSsh.git
cd dsh-withSsh
npm install
npm run validate

完成构建后,使用本地目录接入 Harness:

dsh plugin --profile web add D:/path/to/dsh-withSsh

本插件只通过 cordis.patch.yml 注入自身的 Host 服务、Web 路由和客户端视图,不修改 DeepSeek Harness 主体源码。

许可

插件代码使用 [MIT License](LICENSE)。截图中的服务器地址和 Host Key 已做脱敏处理。