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
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则