前言¶
在 DSH 里让智能体操作远端机器,最常见的做法是另开一条 ssh 通道:命令由 agent 自己拼,shell 由 agent 自己管。这种做法有三个直接的问题:你看不到它实际敲了什么命令,密码 / sudo / 指纹这类必须由人完成的交互没有落点,事后也没有一份可以回看的记录。
feely0208/dsh-ssh-console 给出的是一条受控、可审计的执行通道。它不做共享 PTY,而是把边界写死:主机白名单、只走密钥、危险命令二次确认、全量留痕。下面介绍它的能力、安装方式和使用边界。
这是什么¶
@deepwhale-cn/dsh-ssh-console 是 DSH(DeepSeek Harness)的一个插件,包描述为「深鲸 SSH 控制台」:在侧栏面板里列出 ~/.ssh/config 中的主机、执行远程命令、全量审计留痕。它由 feely0208 维护,仓库地址为 github:feely0208/dsh-ssh-console,package.json 中作者一栏为温州深鲸智能科技有限公司。
解决的问题是:agent 需要能碰远端机器,但执行过程要处于人的可视、可确认、可回看范围内。关键词(README 原文)为 SSH、远程运维、审计、危险命令确认、DeepSeek Harness 插件。
核心功能¶
- 主机白名单:默认只允许
~/.ssh/config里的别名;确需把策略放宽到任意user@host时,显式设置DSH_SSH_ALLOW_ANY=1。 - 只走密钥:调用本机
ssh时使用BatchMode=yes。需要密码的场景会明确报错,而不是诱导你把密码写进配置或插件。 - 危险命令二次确认:命中
rm -rf、mkfs、dd、shutdown、chmod 777、强推、npm publish等模式时,返回「需要确认」,只有带confirm=true才会执行。 - 全量审计:每次执行、被拒绝的执行、待确认的请求都写入
~/.dsh/ssh-console-audit.jsonl。
面板分四个区域:
| 区域 | 内容 |
|---|---|
| 主机 | 从 ~/.ssh/config 读取(别名 + 用户@主机) |
| 命令 | 多行输入;执行后显示退出码、耗时、stdout/stderr |
| 待确认 | 危险命令命中时出现,必须点「我知道风险,执行」 |
| 审计 | 最近 20 条执行记录(时间 / 主机 / 结果 / 命令摘要) |
安装与启用¶
安装命令来自 README 原文:
dsh plugin --profile web add @deepwhale-cn/dsh-ssh-console
安装前需要的环境要求(package.json):
"engines": {
"dsh": ">=0.1.0-rc.6 <0.3.0",
"node": ">=18"
}
许可证为 MIT,当前版本 0.1.0。该插件面向 web 平台,dsh.client.inject 注入 @deepseek-ai/dsh-client-runtime,platform 为 web,immediately 为 true;dsh.bundle.patch 指向 ./cordis.patch.yml。入口为 ./lib/index.js,另有 ./lib/client.js。
安装前应先读一遍源码与 LICENSE。该插件以当前 dsh 进程的权限运行,它执行远程命令依赖的是本机 ssh 可执行文件,因此也要看运行 dsh 的账号本身能访问哪些主机和凭据。
典型用法¶
安装完成后,侧栏会多出「SSH 控制台」。先做两件准备:确认目标主机的别名已经写在 ~/.ssh/config 里,确认本机 ssh 已配置好密钥或 ssh-agent(插件不保存密码,也不做凭据代理)。
执行顺序如下:
- 在「主机」区域选定别名。列表来自
~/.ssh/config。 - 在「命令」区域输入要执行的命令,支持多行。
- 点「执行」,面板显示退出码、耗时、stdout 与 stderr。
- 若命中危险命令模式,面板不会直接执行,而是在「待确认」区域出现条目,需要点「我知道风险,执行」;或者以带
confirm=true的方式确认后才执行。 - 每次执行、拒绝、待确认都会追加一条记录到
~/.dsh/ssh-console-audit.jsonl,可在「审计」区域查看最近 20 条。
以下命令均为危险命令示例,会触发二次确认:
rm -rf /var/lib/app
mkfs.ext4 /dev/sdb1
dd if=/dev/zero of=/dev/sda
shutdown -h now
chmod 777 /etc/app
git push --force origin main
npm publish
适用场景与注意¶
适合这几类场合:需要从 DSH 侧栏发起远程命令、想让每次远端操作都有时间 / 主机 / 结果 / 命令摘要可回看、不想让密码进入插件或配置文件。
需要注意的边界(README「边界(重要)」一节):
- 不保存密码、不做代理:只调用本机
ssh,凭据由你的 ssh 体系(key / agent)管理。 - 不是完整终端:一次一条命令执行,不保留 shell 状态,
cd/export不跨命令。需要交互式登录请用系统终端。 - 超时:默认 30 秒,最长 120 秒;长任务请用
nohup/tmux自己托管。 - 审计文件是明文 JSONL,留在本机;不要把它放在共享目录里。
该插件是一个工具,使用者需遵守所在地区法律法规,对使用本项目造成的后果自行承担责任。
结尾¶
这个插件的价值不在于提供更顺手的远程 shell,而是把远程执行的边界固定下来:谁来执行、能不能执行、执行了什么、被拒绝过什么,都有记录。目录页与仓库如下:
- SkillHub 目录页:https://www.skillhub.cn/plugins/feely0208/dsh-ssh-console
- GitHub:https://github.com/feely0208/dsh-ssh-console
需要说明的是,SkillHub 是独立的社区目录站点,与 DeepSeek / 幻方没有官方从属关系,该插件并非官方应用商店中上架的产品。