🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

SSH 隧道管理 ljh220300-eng/dsh-plugin-ssh-manager

DeepSeek Harness
ljh220300-eng64 天前有提交已提供中文文档扫描:含敏感能力

一条隧道打通多台远程实例,一键切换控制台

28.5/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ljh220300-eng/dsh-plugin-ssh-manager
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/09/25·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/05·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 64 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 16 处,展示前 14 条)
  • 读取本地文件
    lib/index.js:78
    const parsed = JSON.parse(readFileSync(CONFIG_PATH, 'utf8'));
  • 写入本地文件
    lib/index.js:89
    mkdirSync(DATA_DIR, { recursive: true, mode: 0o700 });
  • 写入本地文件
    lib/index.js:91
    writeFileSync(tmp, JSON.stringify(config, null, 2) + '\n', { encoding: 'utf8', mode: 0o600 });
  • 写入本地文件
    lib/index.js:92
    renameSync(tmp, CONFIG_PATH);
  • 执行外部命令来自配置/变量
    lib/index.js:107
    const child = spawn(candidate, ['-V'], { stdio: ['ignore', 'pipe', 'pipe'], windowsHide: true });
  • 执行外部命令来自配置/变量
    lib/index.js:131
    const child = spawn(candidate, ['-V'], { stdio: 'ignore', windowsHide: true });
  • 写入本地文件
    lib/index.js:204
    mkdirSync(DATA_DIR, { recursive: true, mode: 0o700 });
  • 写入本地文件
    lib/index.js:213
    writeFileSync(cmd, content, { encoding: 'utf8' });
  • 写入本地文件
    lib/index.js:218
    writeFileSync(sh, content, { encoding: 'utf8', mode: 0o755 });
  • 执行外部命令固定命令
    lib/index.js:261
    spawn('taskkill', ['/pid', String(child.pid), '/t', '/f'], { stdio: 'ignore', windowsHide: true });
  • 执行外部命令来自配置/变量
    lib/index.js:310
    child = spawn(info.path, args, {
  • 删除本地文件
    lib/index.js:623
    try { unlinkSync(keyPath); } catch { }
  • 发起网络请求
    lib/client.js:199
    const response = await fetch("/ssh-manager/status", { cache: "no-store" });
  • 发起网络请求
    lib/client.js:204
    const response = await fetch(path, {
扫描于 2026/11/5(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-home-paths@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 多IP实例管理
  • 一键切换控制台

在一台终端上通过 SSH 隧道管理多 IP 的 DSH 实例

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-ssh-manager 从单个 DSH 终端通过 SSH 隧道管理运行在多台机器(多 IP)上的 DSH 实例。 在一台终端上通过 SSH 隧道管理多台机器(多 IP)上的 DSH。 - 每个配置的远程主机会从本机建立一条 ssh -N -L 隧道,连接到远程 DSH Web 服务器(远程侧的 127.0.0.1:)。 - 每台主机都会被分配一个稳定的本地端口(默认 21300–21399,或你指定的端口),因此远程控制台始终可以通过 http://127.0.0.1: 访问。 - 主机可以在启动时自动连接,并以退避策略自动重连。 - 两个界面:一个侧边栏快捷菜单(远程 DSH),列出主机并一键打开远程控制台;以及位于设置 → SSH 隧道主机下的完整管理页面(添加 / 编辑 / 删除 / 连接 / 断开连接)。 - 还注册了一个模型工具 ssh_manager,因此智能体本身可以按请求对隧道执行 list / status / connect / disconnect / open。
展开完整文档(README 剩余 1 节)
dsh-plugin-ssh-manager

从单个 DSH 终端通过 SSH 隧道管理运行在多台机器(多 IP)上的 DSH 实例。
在一台终端上通过 SSH 隧道管理多台机器(多 IP)上的 DSH。

- 每个配置的远程主机会从本机建立一条 ssh -N -L 隧道,连接到远程 DSH Web 服务器(远程侧的 127.0.0.1:)。
- 每台主机都会被分配一个稳定的本地端口(默认 21300–21399,或你指定的端口),因此远程控制台始终可以通过 http://127.0.0.1: 访问。
- 主机可以在启动时自动连接,并以退避策略自动重连。
- 两个界面:一个侧边栏快捷菜单(远程 DSH),列出主机并一键打开远程控制台;以及位于设置 → SSH 隧道主机下的完整管理页面(添加 / 编辑 / 删除 / 连接 / 断开连接)。
- 还注册了一个模型工具 ssh_manager,因此智能体本身可以按请求对隧道执行 list / status / connect / disconnect / open。

安装 / 安装

安装到 dsh 配置文件中(此应用运行的配置文件,通常是 web):

dsh plugin --profile web add github:ljh220300-eng/dsh-plugin-ssh-manager

或者在配置文件目录内使用普通的 pnpm:

pnpm -w add github:ljh220300-eng/dsh-plugin-ssh-manager

本地开发时改用路径规范(dsh plugin --profile web add file:F:/work/dsh-plugin-ssh-manager)。

安装后,重启应用(宿主部分在启动时加载)并刷新页面(客户端部分)。dsh plugin 命令会自动为你协调 dsh.profile.bundles 层列表。

认证 / 认证

- 密钥(推荐 / 推荐) — ssh-agent(默认)或显式的身份文件。需要密钥位于 ssh agent 上或给定路径处;首次使用远程主机时会自动接受其主机密钥(StrictHostKeyChecking=accept-new)。在设置表单中,选择文件 / 选择文件 会直接从你的文件系统导入私钥 —内容会被上传到本地插件存储($DSH_HOME/plugins/ssh-manager/keys/,每个唯一密钥内容一个文件,权限 0600),并为你填充路径字段;当该密钥的最后一个主机被删除时,该文件也会被移除。手动输入主机侧路径仍然有效。
- 密码(密码) — 通过插件在其配置旁生成的 SSH_ASKPASS 包装器提供支持;密码存储在 $DSH_HOME/plugins/ssh-manager/hosts.json(文件权限 0600)中,并仅通过环境变量传递给 ssh — 它绝不会出现在进程命令行中。
需要 OpenSSH ≥ 8.4(SSH_ASKPASS_REQUIRE);在较旧的客户端上请改用密钥认证。

配置 / 配置

- 注册表:$DSH_HOME/plugins/ssh-manager/hosts.json (除非设置了 DSH_HOME,否则为 ~/.dsh/plugins/ssh-manager/hosts.json)。
- 每个远程主机一条记录:

{
"name": "lab-01",
"sshHost": "192.168.1.10",
"sshPort": 22,
"sshUser": "root",
"authMethod": "key",
"identityFile": "C:\\Users\\me\\.ssh\\id_ed25519",
"passphrase": "",
"remoteHost": "127.0.0.1",
"remotePort": 3080,
"localPort": null,json
"autoConnect": true
}

- remotePort 是远程 DSH Web 服务器监听的端口(dsh web 默认为 3080;桌面应用会自行选择端口——请查看远程机器的 GUI URL)。
- remoteHost 是通过 ssh 在远程侧访问的绑定地址;当 DSH 运行在 ssh 主机本身上时,保持为 127.0.0.1。
- 支持受口令保护的密钥:passphrase 通过与密码相同的 SSH_ASKPASS 机制来应答(仅限环境变量)。

要求 / 依赖

- 本机上需有 OpenSSH 客户端(ssh)——Windows 将其作为可选功能提供(设置 → 可选功能 → OpenSSH 客户端);该插件还会探测 C:\Windows\System32\OpenSSH\ssh.exe 和 /usr/bin/ssh。
- 无需额外的 npm 依赖;它针对 dsh 配置文件已提供的包运行(@deepseek-ai/dsh-tools、 @deepseek-ai/dsh-home-paths)。

许可证

MIT
预览分享卡片长什么样 ↓ljh220300-eng/dsh-plugin-ssh-manager
分享 · DeepSeek Harness Hub
ljh220300-eng/dsh-plugin-ssh-manager

一条隧道打通多台远程实例,一键切换控制台

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部