dsh-ssh

DSH PLUGIN浏览器与联网

仓库 jmcc-guo/dsh-ssh · npm @jmcc-guo/dsh-ssh

浏览器与联网 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为 DeepSeek Harness 提供 AI 驱动的 SSH 连接管理与多标签终端面板,支持模型自主连接、执行命令及实时查看输出。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 5 复刻 1 · 未关闭 issue 2
最近更新 2026-09-10 创建于 2026-08-15
README 10.7 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:jmcc-guo/dsh-ssh#v0.1.1
兼容 DSH 版本0.2.0-rc.2 等 10 个版本版本不匹配时安装会报错
Node.js 要求>=18.0.0来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/cordis@^4.0.1、@deepseek-ai/dsh-credentials@^0.1.0-rc.6 等 6 个需要同时安装的同级依赖
npm 包名@jmcc-guo/dsh-ssh可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-ssh:DeepSeek Harness 的 SSH 终端面板与 AI 连接管理插件

  • 模型驱动连接生命周期
  • 自动保存与复用连接
  • AI/用户连接隔离
  • 自动重连与保活
  • 实时多标签终端面板

适用场景

终端命令联网搜索

上游标签

dsh-plugin

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
  • L4.4_RESOLVED_ARTIFACT 安装版本已解析 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

浏览器与联网
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方jmcc-guo仓库 dsh-ssh · 默认分支 main
分类浏览器与联网search
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue5 / 1 / 2收录时的数值,非实时
创建 / 更新2026-08-15 · 2026-09-10最后推送 2026-09-10
本站收录2026-08-17首次进入本站目录的时间

README 全文

10.7 KB
作者原文,中文版优先;只做安全转义,不改内容

@jmcc-guo/dsh-ssh

English · 简体中文

> DeepSeek Harness 的 SSH 终端插件:AI 自主管理连接 + XShell 风格多标签实时终端面板。

DeepSeek Harness(DSH)的 SSH 终端插件:AI 代理可在对话中自主管理远程连接,Web GUI 右侧提供 XShell / Uniterm 风格的多标签终端面板,模型与人工执行的命令同屏实时显示。

功能

  • 模型自主管理连接:ssh_connect / ssh_exec / ssh_list / ssh_status / ssh_disconnect / ssh_exec_read / ssh_exec_kill / ssh_delete。同一服务端可建立多个独立连接(各自拥有连接名、会话状态与命令队列)。
  • 自动保存与复用:连接按名称持久化(名称全局唯一)。重启 DSH 后,ssh_exec 直接按已保存名称自动建连执行,无需重新传参。
  • 统一由 AI 管理:不存在来源区分——无论连接由 AI(ssh_connect)还是设置页创建,一律归 AI 代理管理:出现在 ssh_list 中,ssh_exec / ssh_status / ssh_disconnect / ssh_delete 立即可用,无需任何"转移"步骤。
  • 保活与重连:空闲心跳;仅意外断线自动重连(指数退避、有上限),重连成功提示"shell 状态已重置";一切显式断开(关标签、ssh_disconnect、设置页断开按钮)均不自动重连。
  • 执行互斥(所有连接):AI 执行期间该终端的人工输入被服务器端丢弃并显示"AI 正在执行中…"(AI 不执行时人类才可以输入);AI 对"共享终端 shell 仍活跃"的连接 ssh_exec 会等待其静默(默认 2 秒无输出/输入)或返回"连接忙"。
  • 标签联动:人工关闭标签 → 立即断开(无确认弹框);AI 断开 → 标签保留显示已断开、可一键重连;模型自动建连成功 → 自动打开/复用标签。连接一个已保存连接(标签栏 "+"、设置页"连接"按钮)从不拒绝已打开的连接:若该连接已有打开的标签,调用会新建一个独立会话/标签(即使同一连接已在其他标签中连接);仅当尚无任何标签时才连接主会话(即模型工具寻址的那个会话)。
  • 实时终端面板——双形态、同一状态:面板主体可落在两个位置——DSH 原生右侧详情列(对话区收缩,不遮挡;关闭后原始右列(工具详情)原样恢复,右侧细条可重新打开面板),或 dsh-better-sidebar 侧边栏:安装了该插件时,同一份面板主体注册为侧边栏 tab(dsh-ssh:terminal,出现在其 + 菜单,带连接数实时角标),AI 建连的自动打开也落在那里(并展开侧边栏)。两个形态共享同一条 host 管理的状态流,切换不会分叉终端状态。panelSurface 设置(见下文)决定形态:auto(默认——装了 sidebar 就用 sidebar)、sidebar(优先 sidebar)、native(始终原生右列);未安装 dsh-better-sidebar 时自动全部回退到原生右列。每条连接持有一个真实交互式 shell(PTY):登录横幅(motd / Last login)、远端提示符 user@host:路径$、输入回显、cd 后路径跟随变化——与原生 SSH 客户端观感一致;没有独立输入框、没有复制按钮,点击终端后直接键入,击键直达远端 shell(支持方向键、Tab、Ctrl-C、粘贴、IME);聚焦后显示闪烁块光标;AI 执行的命令以来源标记同屏显示;多标签、ANSI 颜色、滚动回看;画面自动跟随最新输出保持在底部(大段输出突发也不会脱尾),手动上滑回看历史时不强拉回底部,但 AI 开始操控该连接时会自动滑回底部,始终可见 AI 的实时输出。
  • 设置页管理连接:设置 → "SSH 连接" 页面集中管理新建、编辑(可重命名)、删除连接及其凭据(密码/私钥存入 DSH 凭证库)、连接/断开。终端分栏内不含增删改功能。
  • 凭证安全:密码/私钥只进 DSH 凭证库(生成式引用),记录文件、日志、工具返回均不含明文;工具参数内联密钥被拒绝;认证失败返回脱敏的可读原因。
  • 设置:dsh-ssh 设置命名空间可覆盖心跳、重连策略、超时、输出上限、记录文件路径等。
  • 中英文双语界面。

环境要求

  • Node.js >= 18(ESM)
  • pnpm(锁文件:pnpm-lock.yaml)
  • 带 web profile 的 DeepSeek Harness(DSH)安装
  • 测试套件需要可达的 SSH 服务(自带测试以本地 WSL OpenSSH 实例为目标,见 scripts/test-acceptance.mjs)

安装

# 从 npm 安装(推荐)
dsh plugin --profile web add @jmcc-guo/dsh-ssh

# 或直接从 GitHub 安装
dsh plugin --profile web add "github:jmcc-guo/dsh-ssh#v0.5.0"

# 或从本地目录安装
dsh plugin --profile web add <本仓库路径>

插件自带的 cordis.patch.yml 挂载 dsh-ssh 行。可在 profile 的
cordis.patch.yml 中按同一行 id 覆盖配置:

- id: dsh-ssh
config:
heartbeatIntervalMs: 20000
reconnectMaxAttempts: 8
outputLimitBytes: 2097152

修改后重启 profile 进程生效(插件集与客户端 bundle 图在启动时组合)。

常见问题

ssh2 已捆绑内置——无需任何构建步骤

ssh2 及其完整依赖闭包通过 bundleDependencies 直接打进 npm 包,因此安装 @jmcc-guo/dsh-ssh 不会执行任何依赖构建脚本:无需修改 allowBuilds,也不会出现 ERR_PNPM_IGNORED_BUILDS。ssh2 以纯 JS 实现运行(功能完整,已经真实 SSH 服务器验证);可选的原生加密绑定有意不编译。

Peer 依赖警告

pnpm peers check 可能报告 @deepseek-ai/* 的 "missing peer",尽管 DSH 实际已提供:在 hoisted 的 profile 布局下,外部插件运行时从共享的 profiles/node_modules 解析宿主包,而 pnpm 的静态 peer 检查不跨该边界。该警告无害——插件可正常加载(已运行时验证)。

设置命名空间(dsh-ssh)

键 默认 说明
heartbeatIntervalMs 30000 ssh2 心跳间隔
keepaliveCountMax 3 心跳失败多少次判定连接死亡
connectTimeoutMs 15000 建连/握手超时
reconnectBaseDelayMs 2000 首次自动重连延迟(每次翻倍)
reconnectMaxDelayMs 60000 退避上限
reconnectMaxAttempts 5 自动重连次数上限
execTimeoutMs 120000 ssh_exec 默认完成等待
busyWaitTimeoutMs 20000 连接忙时默认等待
reconnectWaitTimeoutMs 30000 重连中默认等待
shellQuietWaitMs 2000 AI 执行前共享终端 shell 需静默的时长
outputLimitBytes 1048576 每连接终端缓冲上限
execOutputMaxBytes 200000 单命令返回给模型的上限
recordsPath $DSH_HOME/storages/dsh-ssh/connections.json 记录文件路径
panelSurface auto Web 面板形态:auto = 装了 dsh-better-sidebar 就用其侧边栏,否则原生右列;sidebar = 优先 dsh-better-sidebar(未装时回退原生);native = 始终原生右列。对已打开的面板实时生效

模型工具

  • ssh_connect:新建连接(认证走凭证引用或密钥文件路径)或重新建立已有连接。
  • ssh_exec:按名称在已保存连接上执行命令;离线自动建连;重连/忙碌时按超时等待;返回输出与退出码;长命令返回 execId 供 ssh_exec_read / ssh_exec_kill 使用。
  • ssh_exec_read:增量读取(运行中或已结束)命令输出。
  • ssh_exec_kill:终止运行中的命令(经 PTY 发送 SIGINT)。
  • ssh_list:列出全部已保存连接及实时状态(所有连接统一由 AI 管理)。
  • ssh_status:单个已保存连接的详细状态。
  • ssh_disconnect:显式断开(不自动重连,可带 delete);面板标签保留显示"已断开"。
  • ssh_delete:删除已保存的连接记录(先断开)。

给模型的密钥规则:不要把密码/私钥明文放进工具参数(会被完整记入会话轨迹并被拒绝)。请使用 auth.passwordRef / auth.privateKeyRef(已存储的凭证或环境变量名)或 auth.privateKeyPath(本机密钥文件路径)。新密钥可通过设置页的"SSH 连接"表单录入,自动存入 DSH 凭证库。

安全说明

  • 面板通道(/ssh/ws)复用 harness 浏览器信任围栏:回环/信任主机、同源 Origin、拒绝跨站 fetch-metadata。
  • 密钥只存在于凭证库:记录文件仅保存引用,错误信息脱敏,日志无密钥。
  • 命令经远端真实 PTY 执行:ANSI 输出、交互程序、SIGINT 终止均可用;用户击键经 PTY 直达远端 shell,AI 执行期间该终端的人工输入由服务端丢弃(执行互斥,AI 不执行时人类才可输入)。

仓库结构

lib/index.js            插件入口:配置 schema、manager + 工具 + 面板通道装配
lib/manager.js          SshManager —— 连接生命周期、保活/重连、互斥、PTY shell
lib/tools.js            模型工具(ssh_connect / ssh_exec / ssh_exec_read / ssh_exec_kill / ...)
lib/ws.js               面板 WebSocket 通道(/ssh/ws,含浏览器信任围栏)
lib/store.js            连接记录持久化
lib/client.js           Web GUI 客户端:多标签终端面板 + 设置页 UI
cordis.patch.yml        bundle patch,挂载 dsh-ssh 行
scripts/                测试套件(见下文)

测试

scripts/ 内含验收套件与辅助脚本(需要可达的 SSH 服务;自带测试以 WSL OpenSSH 实例为目标):

node scripts/test-acceptance.mjs   # 64 项管理层验收套件
node scripts/smoke.mjs             # 快速冒烟测试
node scripts/test-panel-ws.mjs     # 面板 WebSocket 通道驱动(测试 web 实例 :3081)
node scripts/test-rename.mjs       # 重命名专项测试(无需 SSH 服务)
node scripts/test-connect-tabs.mjs # connect/标签语义专项测试(无需 SSH 服务)
node scripts/test-panel-channel.mjs # 面板 WS 通道专项测试(无需 SSH 服务,也无需 DSH 实例)
node scripts/test-client-surface.mjs  # 双形态(原生右列 / dsh-better-sidebar)逻辑(无需 SSH 服务)

参与贡献

欢迎提交 Issue 与 Pull Request。请保持模型可见接口(工具名、参数语义、返回结构)向后兼容,并确保密钥绝不进入日志、记录文件或工具返回。

License

MIT

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-ssh 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:jmcc-guo/dsh-ssh#v0.1.1` 即可。对应的 npm 包名是 `@jmcc-guo/dsh-ssh`。

dsh-ssh 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-ssh 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-ssh 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.7-rc.1、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2。版本较多,只列出前 8 个。

dsh-ssh 需要什么运行环境?

Node.js >=18.0.0;需要同时安装 @deepseek-ai/cordis@^4.0.1、@deepseek-ai/dsh-credentials@^0.1.0-rc.6、@deepseek-ai/dsh-settings@^0.1.0-rc.6、@deepseek-ai/dsh-tools@^0.1.0-rc.6、@deepseek-ai/schemastery@^3.18.0。环境不满足时安装会失败,建议先确认本机版本。

dsh-ssh 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-ssh 有哪些功能?

模型驱动连接生命周期、自动保存与复用连接、AI/用户连接隔离、自动重连与保活、实时多标签终端面板。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

5 条
不同作者的仓库分开列,请确认你要装的是哪一个
浏览器与联网
按星标排序,可作替代方案

dsh-our-free-model

dsh-our-free-model

在 DeepSeek Harness 中装上这个 DSH plugin,无需登录、注册或填 API Key,即可直接调用 DeepSeek

L3 · 安装规范通过 8,796 星

dsh-web

dsh-web

侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。

L3 · 安装规范通过 8,549 星

BrowserSkill

BrowserSkill

BrowserSkill 的 DeepSeek Harness 浏览器自动化桥接插件,通过原生浏览器工具控制可见的 Chrome 和 Edg

L4 · 沙盒安装通过 8,456 星

dsh-pocket

dsh-pocket

DSH Pocket 让 DeepSeek Harness 装进口袋:电脑跑 dsh web,手机扫码即实时同步访问(局域网+公网),人在外

L5 · 运行验证通过 1,656 星

Browser4

Browser4

L4 · 沙盒安装通过 1,152 星

agentrq

agentrq

L4 · 沙盒安装通过 1,140 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。