跳到主内容

dsh-ssh 使用指南

为 dsh Web GUI 添加 SSH 主机管理、命令执行、Web 终端、SFTP 文件传输、本地端口转发、集群并发执行与 6 个 Agent 工具,主机配置集中存于本机。

本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。

本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。

快速上手

dsh-ssh

— 源: plugin_wiki.wiki_content

安装与验证

dsh plugin --profile web add @linxin666/dsh-ssh

复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。

— 源: plugins.install

关键要点

  • Web 终端:xterm.js 远程终端,实时输出,窗口大小自适应;
  • 文件传输:SFTP 上传 / 下载,有进度条,能浏览远程目录;
  • 端口转发:本地隧道直连远程内网服务(数据库、API、管理后台),只监听 127.0.0.1;
  • 集群执行:一条命令并发跑多台主机,按别名 / 环境 / 标签过滤;
  • Agent 直连:Agent 和面板共用同一份主机配置,对话里说一句「连一下 xxx 看看状态」,智能体就去执行远程命令。

— 源: plugin_wiki.readme_zh (fallback readme_raw)

常见问题

在局域网里别人能访问我的 SSH 控制台吗?

不能。所有 /api/dsh-ssh/* 路由仅信任本机回环连接(socket 地址 127/8 + 同源 Host header + sec-fetch-site/origin 校验),LAN 邻居直接 403;本地端口转发隧道也只监听 127.0.0.1,无法被外部访问。代码在 packages/dsh-ssh/src/routes.ts:101-111、packages/dsh-ssh/src/loopback.ts:44-62。

密码是怎么保存的?

以明文存于 ~/.dsh/dsh-ssh.json(文件 0600、目录 0700,原子写入),与 ssh-skill 同一信任模型——既然 ~/.ssh/config 也常以注释形式存密码,本插件不做额外加密。位置与权限在 packages/dsh-ssh/src/store.ts:18-20、347-355。

Agent 能在我没配置的主机上执行命令吗?

不能。Agent 只能操作 GUI 已配置或从 ~/.ssh/config 导入的主机别名;别名未配置时工具调用直接报错,不会臆造主机。约定在 packages/dsh-ssh/src/index.ts:67(系统提示词的「限制」段)与 packages/dsh-ssh/README.md:27。

— 源: plugin_wiki.faq_json

兼容性

  • DSH: 未声明(package.json 无 dsh.engines;通过 devDependencies 锁到 @deepseek-ai/dsh-* ^0.1.0-rc.8,详见 packages/dsh-ssh/package.json:60-72)
  • Node: ^22.19.0 || >=24.0.0(packages/dsh-ssh/package.json:7-9)

— 源: plugin_wiki.compatibility_json

踩坑提醒

安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。

— 来源:通用规则