dsh-ssh-vault:用别名连 SSH,凭据不进对话与命令行

前言

在 DeepSeek Harness(DSH)里让智能体操作远程主机,常见做法是直接把地址、账号、密码写进提示词,或让模型在 Shell 里拼 ssh user@host。前者会把密钥材料送进模型上下文;后者容易出现在进程列表或历史记录里,也不利于轮换凭据。

下面介绍社区插件 dsh-ssh-vault(维护者 scientificmaniac),分类为 admin-security。它把主机地址、端口、账号、密码和私钥放进加密保管库,对话里只使用别名;模型不接触密码,密码也不会出现在本地命令行或远端进程列表中。插件底层调用本机 OpenSSH 客户端(ssh / scp),不自行实现 SSH 协议。

这是什么

dsh-ssh-vault 是 DSH 的 Cordis 插件,在「一切皆插件」的生态里提供「加密 SSH 主机库 + 面向模型的 SSH 工具」。同一插件还包含设置页 UI 和会话内的 /hosts 命令,三条入口共用 Host 侧的保管库与执行逻辑。

核心功能

资料中归纳的三块能力如下。

面向模型的工具

智能体通过别名操作远程主机,典型工具包括:

工具 作用 说法示例
ssh_hosts 管理保管库(列出 / 查看 / 增删改) 「我有哪些主机」「改一下 kali 的备注」
ssh_run 在主机上执行命令,返回 stdout / stderr 「在 kali 上看一下磁盘占用」
ssh_transfer 上传或下载文件(scp) 「把这个文件拷到 kali 的 /tmp」
ssh_probe 可达性自检并返回系统信息 「kali 还能连上吗」

ssh_run、ssh_probe、ssh_transfer 的结果以 终端卡片 展示:标题为「主机 · 命令」和状态点,下方为可滚动的等宽输出。运行中为蓝色,成功为灰色,失败(含非零退出码)为红色。

设置页:SSH Connections

路径为 Settings → SSH Connections。可添加、编辑、删除连接;别名可改,凭据随别名迁移。每张卡片有健康状态点(灰 / 黄 / 绿 / 红),支持「Test connection」。密码在设置页通过 HTTP 请求体提交,不经过会话日志。支持密码或私钥认证;私钥可整段上传并写入保管库并收紧权限。还可「在文件管理器中打开」保管库目录。

/hosts 命令

在输入框以 / 开头的行会 不经模型 直接执行,例如:

/hosts                    # 列出所有主机,按在线 / 离线分组
/hosts kali               # 探测一台
/hosts kali,win10         # 探测多台(逗号可用全角 ,)
/hosts kali; apt update   # 在 kali 上执行命令
/hosts kali,win10; uptime # 在每台可达主机上执行

分号也可用全角 ;。若分号后是自然语言(如「检查一下磁盘」),命令不会执行,并提示把那句话发到对话里由模型处理——因为命令输出不会进入模型上下文。

架构与安全要点(摘要)

插件分为 Host(index.js,Cordis 加载)与 Client(client.js,浏览器模块)。敏感操作(保管库加解密、调用本机 ssh、Web 路由、工具注册)均在 Host;Client 只负责表单与展示。

资料中强调的三条不变量:

  1. 密码不进入命令行参数——本机 ssh 通过 SSH_ASKPASS 获取;远端 sudo 经 stdin 注入。
  2. 磁盘上仅为密文——AES-256-GCM;Windows 上数据密钥可由 DPAPI 保护,其他平台默认需主口令(scrypt 派生)。
  3. 不改动用户 ~/.ssh——known_hosts 指向保管库目录,并启用 HashKnownHosts。

保管库默认目录为 $DSH_HOME/ssh-vault(DSH_HOME 由 DSH 决定)。cordis.patch.yml 中 config: {} 为空,没有面向用户的额外配置项;ssh_run 默认超时 120 秒(可调,上限 30 分钟),/hosts 内命令固定 120 秒;探测超时 15 秒,后台每 5 分钟刷新健康状态。

安装与启用

环境要求(来自 README):

项 要求
Node ≥ 20
本机 已安装 OpenSSH 客户端(ssh 在 PATH 中)
平台 Windows、Linux、macOS

官方安装命令(须指定 --profile,否则会装到当前默认 profile,容易装错位置):

dsh plugin --profile desktop install dsh-ssh-vault

也可从本地目录或打包的 .tgz 安装,例如已在插件目录内时:

dsh plugin --profile desktop install .

安装后 重启 DSH——Host 侧工具与路由在启动时加载。可用下面命令确认安装位置:

dsh plugin --profile desktop list

典型用法

经过上面的安装与重启,按 README 的快速上手顺序操作即可。

  1. 打开 Settings → SSH Connections,点击「Add connection」,填写别名、地址、端口、账号,并选择密码或私钥认证。
  2. 在对话中用自然语言说明意图,不要把密码贴进对话。例如:
   run uptime on kali

模型会调用 ssh_run,结果以终端卡片呈现。

设置页录入的密码直接进入加密保管库,不会进入模型上下文。

适用场景与注意

适合谁: 需要在 DSH 对话里让智能体查日志、跑诊断、传文件,又希望 SSH 凭据与别名分离、减少泄露面的开发者或运维使用者。

权限与信任: 插件以 当前 DSH 进程的用户权限 在本机拉起 ssh / scp,并能访问你写入保管库的主机。安装前应阅读源码与 MIT 许可证,确认行为符合你的安全策略;社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,插件质量与维护由作者与社区承担。

习惯: 凭据只通过设置页或 ssh_hosts 工具链维护;避免在对话或 Shell 里粘贴密码。需要不经模型的批量探测或固定命令时,使用 /hosts。

结尾

dsh-ssh-vault 把 SSH 连接信息收进加密保管库,对话与工具调用只认别名,并复用本机 OpenSSH,适合在 DSH 里做可控的远程操作。进一步了解可访问 目录页 与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye