dsh-ssh-plugin

DSH PLUGIN浏览器与联网

仓库 Azurer0121/dsh-ssh-plugin

浏览器与联网 未标注验证等级 安全审查:未标注 可信度:未标注 可安装插件

DSH 插件:远程命令执行与持久化 SSH 连接

一句话选型结论

按资料字段整理

dsh-ssh-plugin 是浏览器与联网类的 DSH 可安装插件,未做沙盒验证,暂无安全审查结论,没有现成安装命令,需要按仓库 README 接入。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类浏览器与联网 收录类型可安装插件 验证等级未标注验证等级 安全审查未标注
验证等级 UNKNOWN 未标注验证等级
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-09-20 创建于 2026-08-14
README 6.6 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

浏览器与联网
字段来自项目仓库与公开索引,中文说明由本站标注

上游标签

ai-agentdeepseek-harnessdsh-pluginsshtypescript

验证等级与安全审查

未标注验证等级
自动化流程结论,不是人工审核
验证等级未标注验证等级上游未给出验证结论,安装前请自行确认
安全审查未标注静态分析结论,未标注不代表已通过审查
仓库健康度未标注按仓库活跃度与最近更新时间给出
可信度未标注综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 基础信息齐全,可以先按仓库说明试装。

先想清楚的地方

  • 安全审查还没结论,装之前先看仓库改了什么、要什么权限。
  • 没有现成安装命令,要按仓库 README 手动接入。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在浏览器与联网场景里给 DSH 补能力的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-ssh-plugin当前 未做沙盒验证 未标注 0 未标注 无
dsh-our-free-model L3 · 安装规范通过 低风险 8,796 未标注 有
dsh-web L3 · 安装规范通过 低风险 8,549 未标注 无
BrowserSkill L4 · 沙盒安装通过 低风险 8,456 未标注 有
dsh-pocket L5 · 运行验证通过 低风险 1,656 0.2.0-rc.2 等 12 个 有
Browser4 L4 · 沙盒安装通过 中风险 1,152 未标注 有

仓库档案

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

README 全文

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

dsh-ssh-plugin

A DeepSeek Harness plugin that adds the ssh_exec model tool — run commands on a remote Linux server over the system ssh client — plus persisted SSH connections: save connections once, bind them to a workspace, and let ssh_exec use them by default.

  • Key-based auth only (BatchMode=yes) — no password/passphrase prompts, so a missing or unauthorized key fails fast instead of hanging.
  • No remote-shell quoting layer — the remote command travels through ssh stdin to bash -s.
  • Session sandbox aware — runs the client under the calling session's standing policy; danger-full-access runs it unconfined.
  • Recognizes your local ~/.ssh/config — hosts defined there need no manual ssh_connections save; pass the alias as ssh_exec host and ssh resolves it, and ssh_connections list shows them read-only.
  • Dual-face package — the host half registers the ssh-connections settings namespace and the ssh_connections tool; the browser half registers the "SSH Connections" card in Settings → Plugins.
  • All harness services except tools/shell are optional — profiles without settings or workspaceRegistry degrade gracefully (see below).

Install

dsh plugin --profile  add dsh-ssh-plugin          # from npm
dsh plugin --profile  add github:you/dsh-ssh-plugin   # from git
dsh plugin --profile  add ./dsh-ssh-plugin        # from a local checkout

A local checkout must be built first: pnpm install && pnpm bundle (git installs build automatically through prepare).

Then boot with dsh --profile.

The plugin declares the harness packages as peer dependencies; @deepseek-ai/dsh-base (the first bundle of every profile) provides them.

Usage

ssh_exec

The model gains an ssh_exec tool. Ask in natural language (e.g. "ssh to root@10.0.0.5 and show disk usage"), or pass explicit arguments:

Arg Required Notes
host yes* Remote host as [user@]host, e.g. root@10.0.0.5, or any alias defined in ~/.ssh/config.
command yes Bash command(s) run on the remote host via bash -s.
port no SSH port. Default 22.
key_path no Absolute path to the private key. Omit for ~/.ssh defaults and ssh-agent.
timeout_ms no Foreground timeout in ms. Default 30000.
connection no Label of a saved connection; fills in host/port/user/keyPath.

* host is required in the schema, but at execution the effective host resolves as explicit host → explicit connection → workspace default. Explicit port/key_path always win over the resolved connection's values. A host that is a ~/.ssh/config alias is handed to ssh unchanged — ssh applies the config's HostName/User/Port/IdentityFile itself, so no ssh_connections save is needed for config hosts.

ssh_connections

The model also gains an ssh_connections tool for durable connection management (persisted through the harness settings store, so it survives restarts):

  • save — persist a connection (label, host, optional port/user/keyPath). Labels are unique.
  • list — show saved connections plus hosts discovered from the local ~/.ssh/config (read-only; pass the alias as ssh_exec host, no save needed).
  • delete — remove one by label (also unbinds workspaces that pointed at it).
  • use — bind the current workspace to a connection label so ssh_exec may omit host; omit label to clear the workspace default.

SSH config discovery

On every call the plugin reads the local OpenSSH client config (~/.ssh/config, or sshConfigPath when configured) and parses it:

  • Concrete Host aliases become visible to the model in ssh_connections list and are suggested in ssh_exec error messages.
  • Per ssh semantics, the first obtained value wins: global directives and Host * blocks provide defaults, later matching blocks cannot override them. HostName/User/Port/IdentityFile are resolved; Match blocks and Include directives are not expanded — hosts must live in the file itself.
  • Discovery is best-effort: a missing/unreadable config yields an empty list, never an error. Config hosts are never persisted — they exist only in your ~/.ssh/config.

Settings card

With a web profile, Settings → Plugins shows an "SSH Connections" card styled like the built-in plugin cards (Bash/Terminal, Agent loop, Web search): a collapsible card with an unsaved badge and discard/save actions. Edit the same connections list (add/remove rows, save). The card only writes the connections field; workspace bindings are managed by ssh_connections use.

Data model

The ssh-connections settings namespace (schemastery schema, validated for duplicate labels):

{
connections: [{
label: string            // unique, non-empty
host: string             // [user@]host, non-empty
port?: number            // 1..65535, default 22
user?: string            // optional; prepended to host when host has no user part
keyPath?: string         // absolute private-key path; omit for ~/.ssh + ssh-agent
}],
workspaceDefaults: { [workspaceId: string]: string }   // workspaceId → label
}

Only key paths are stored — key content never leaves disk (role('secret') is reserved for a future keyContent field).

Configuration

Set row-level defaults in a later patch layer (profile cordis.patch.yml or --patch):

- id: tool-ssh
name: dsh-ssh-plugin
config:
timeoutMs: 30000
connectTimeout: 15
sshConfigPath: C:\Users\me\.ssh\config   # optional; defaults to ~/.ssh/config

Degradation matrix

Composition Behavior
No ctx.settings (e.g. TUI) No namespace, no ssh_connections tool; ssh_exec works with explicit args only.
No ctx.workspaceRegistry use and the workspace-default resolution report "workspace registry unavailable"; everything else works.
No ~/.ssh/config (or unreadable) ssh_connections list shows saved connections only; ssh_exec suggestions omit config aliases.
Namespace not exposed to the browser The card renders an "unavailable" placeholder.

Requirements

  • A reachable Linux target with bash and key-based SSH access set up (~/.ssh/authorized_keys).
  • On Windows, a session whose standing sandbox policy is danger-full-access; the restricted token otherwise refuses to start ssh.exe.

Development

pnpm install
pnpm bundle     # tsdown → lib/index.js (host) + lib/client.js (browser bundle)
pnpm types      # tsc --emitDeclarationOnly → lib/types/**/*.d.ts
pnpm test       # vitest (model + wiring)

常见问题

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

本站没有抓到该条目的安装命令,请到仓库主页确认安装方式;这类条目多数是生态应用或尚未发布安装包的项目。

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

未标注验证等级。上游未给出验证结论,安装前请自行确认

dsh-ssh-plugin 安全吗?

未标注。

dsh-ssh-plugin 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

同名或近似条目

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

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 星

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