前言¶
在 DSH 生态中构建智能体时,远程命令执行是常见需求。如果仅仅在对话中获取输出,缺乏对交互式终端的可视化支持,调试多主机场景时会比较繁琐。dsh-ssh-terminal 插件在 DSH 侧边栏中提供了一个可视化的 SSH 终端面板,同时为 Agent 提供了一套标准化的 SSH 工具集。
插件介绍¶
名称:dsh-ssh-terminal
维护者:sunzhyang1616-ui
定位:SSH 远程终端:在 DSH 侧边栏连接远程主机并逐步查看命令与输出。
核心功能¶
-
Better-sidebar「SSH 终端」面板
需要安装dsh-better-sidebar插件(版本 >= 0.12.0)。安装后,Better-sidebar 的菜单会出现「SSH 终端」选项。面板包含连接表单、命令输入以及实时命令→输出转录(带时间戳,颜色跟随 DSH 皮肤)。 -
多连接并行
每次调用ssh_connect都会创建独立的 SSH 进程、输出缓冲和命令队列。侧边栏左侧会列出各连接,点击可切换对应的转录视图。 -
Agent 工具集
本插件提供了一套 Agent 工具,不依赖 Better-sidebar。可用工具包括:
*ssh_connect:建立连接,返回connectionId。
*ssh_exec:执行命令。
*ssh_disconnect:断开连接。
*ssh_status:查看连接状态。
*ssh_list:列出所有连接。 -
记录持久化
操作记录会落盘至本机的~/.dsh/ssh-terminal-history.json,跨重启保留。面板右上角的「清空当前」仅清理当前选中连接的记录。
安装与启用¶
使用官方插件命令安装:
dsh plugin add github:sunzhyang1616-ui/dsh-ssh-terminal
安装后需要硬刷新浏览器(Cmd/Ctrl+Shift+R)以加载客户端变更。本插件依赖 DSH web 或 DSH Desktop 环境。
典型用法¶
在使用 Agent 工具时,需注意连接的生命周期管理:
-
建立连接
调用ssh_connect。必须保存返回的connectionId,后续操作以此 ID 为准。 -
执行命令
使用上一步获取的connectionId调用ssh_exec。 -
并行与排队
* 并行:不同connectionId的命令可以同时执行。
* 排队:同一个连接内的命令会按调用顺序排队,避免写入同一个 SSH PTY 时互相干扰。
适用场景与注意¶
- 适用场景:需要可视化查看远程终端输出、管理多台远程主机、在 Agent 工作流中嵌入 SSH 操作。
- 连接状态:SSH 连接以 Host 进程态存在。DSH 重启后连接会断开,但操作记录会保留。
- 安全建议:密码仅在本次调用内使用,不会回显或写入转录记录。推荐使用
identity(私钥文件)进行认证。
结语¶
dsh-ssh-terminal 为 DSH 插件生态提供了可视化的 SSH 能力。通过侧边栏面板与 Agent 工具的结合,可以在不中断对话主流程的情况下,实现对远程终端的实时监控与操作。