使用方式
- 打开 设置 → SSH 资源,新建分组或服务器资源;PEM /
.key 文件可直接导入。
- 保存的资源可直接“连接并打开”,并自动创建右侧 PTY 终端。编辑时秘密字段留空会保持原值;清除凭据需要显式确认。
- 顶部 SSH 仅控制右侧终端的显示和隐藏;右上角
+ 可选择已保存资源,或创建不落盘的临时连接。
- 在主对话中直接说“查询服务器内存使用情况”或“配置 Nginx SSL 证书”。主 Agent 只能操作当前活动连接,不能读取凭据;默认也不能枚举保存资源或自动用保存凭据连接——在 设置 → SSH 资源 → AI 自动连接 打开开关后,Agent 才能按名称连接已保存服务器并切换当前连接(每次连接都会在右侧面板打开终端,操作者始终可见)。
- 需要数据库时,让 Agent 调
db_connect(或自己在「数据库」页签新建连接),随后即可在对话中查询/执行。
- 插件界面语言自动跟随 DSH 自身的语言设置(中文 / English):切换即时重绘整个插件界面,Agent 可见的工具消息经回写即时并持久跟随;左侧设置菜单的「SSH 资源」标签与图标也随语言动态变化。
固定界面语言。 可以通过插件设置文件(~/.dsh/storages/ssh_ops_settings.json)关闭自动跟随行为。该功能适用于系统使用插件未内置的第三方语言(如俄语)的场景——若不固定,此类语言会被强制回退为默认中文,且插件会在每次加载时把该值回写进配置文件。改为固定使用指定语言即可:
{
"unit": { "name": "ssh_ops_settings", "version": 1 },
"global": null,
"tables": {
"settings": {
"main": {
"language": "en",
"autoApplySystemLanguage": false
}
}
}
}
autoApplySystemLanguage:true(默认值;字段缺失时与 true 相同)表示跟随 DSH 自身语言并在每次加载时回写,行为与之前完全一致。false 表示固定使用存储的 language 值:既不跟随宿主语言,也不回写,文件保持你手动编辑的状态。升级后首次加载时,插件会把默认值 true 写入配置文件,以便看到该开关。
language:"zh" 或 "en",当 autoApplySystemLanguage 为 false 时作为固定语言使用;自动跟随开启时忽略该字段。
- 请在 Harness 停止时编辑该文件(运行中的实例在加载时可能会改写它),编辑完成后重启 Harness 使更改生效。
Agent 工具
共 34 个 Agent 工具,省略 connection_id / db_connection_id 时默认作用于当前活动连接,无需先调 ssh_list / db_list_connections。
SSH(7)
| 工具 | 用途 |
|---|
ssh_list | 查看当前活动连接的安全元数据与秘密无关信息;开启「AI 自动连接」后同时列出已保存服务器(不含凭据),仅在需要枚举时用 |
ssh_connect | 建立 SSH 连接(密码或私钥)并设为当前服务器 |
ssh_connect_profile | 按名称连接已保存的 SSH 资源并设为当前服务器(右侧面板同步打开终端);仅在操作者开启「AI 自动连接」后可用,未开启时明确报错提示转人工 |
ssh_exec | 在当前服务器执行 Agent 命令(继承交互 shell 当前目录),回传退出码/输出/cwd/耗时/超时/截断/脱敏状态 |
ssh_read | 按需读取右侧终端缓冲输出(不静默塞入对话) |
ssh_write | 向指定终端写入交互输入;press_enter(默认 true)自动补回车提交(可传 connection_id 指定目标服务器的终端) |
ssh_disconnect | 断开当前连接及其 shell 会话 |
手动终端上下文(2)
| 工具 | 用途 |
|---|
ssh_terminal_sessions | 列出已打开终端的低敏元数据与读取游标,不返回终端内容或凭据 |
ssh_terminal_context | 经每次用户确认后,按游标读取指定手动终端的有限、脱敏历史;不会影响右侧终端回看 |
SFTP(8)
| 工具 | 用途 |
|---|
sftp_list | 列出远程目录条目(含大小/mtime/权限) |
sftp_read | 读取远程文件内容(默认上限 4 MiB) |
sftp_write | 写入远程文件(创建或覆盖) |
sftp_mkdir | 新建远程目录 |
sftp_delete | 删除远程文件或空目录(不直接执行,改为把 rm -rf 加入待确认队列或返回可复制卡片) |
sftp_rename | 重命名/移动远程路径 |
sftp_upload_dir | 上传本地目录树到远程(自动建目录结构;小文件并发、大文件独占;单文件失败逐条上报不中断整批) |
sftp_download_dir | 下载远程目录树到本地(同上调度策略) |
端口转发(3)
| 工具 | 用途 |
|---|
tunnel_start | 建立本地转发(local,本机 → 服务器可达目标)或远程转发(remote,服务器 → 本机) |
tunnel_list | 列出活动隧道 |
tunnel_stop | 按 tunnel_id 停止隧道 |
批量执行(1)
| 工具 | 用途 |
|---|
ssh_batch | 基于 SSH 资源中已保存服务器(含未连接的)创建批量执行任务,由操作者在面板勾选确认后并发下发,结果按服务器分节;仅当用户明确要求多机批量时使用(旧的 ssh_cluster 已彻底移除,多机操作无免确认路径) |
数据库(14)
| 工具 | 用途 |
|---|
db_connect | 连接 MySQL / PostgreSQL / Redis / MongoDB;回环地址自动经当前 SSH 服务器隧道,SSL 三档可选 |
db_list_connections | 列出已打开的数据库连接(仅用户询问时用) |
db_query | 在 MySQL/PostgreSQL 上跑词法级强制只读查询(仅放行 SELECT/SHOW/DESCRIBE/EXPLAIN/纯查询 WITH;拒绝写动词、SELECT INTO、FOR UPDATE 锁读、数据修改 CTE);结果默认流式截断 200 行,30s 超时;DSH_SSH_OPS_MAX_DB_ROWS 可调整为最多 5000 行;支持 ? / $1 占位符 |
db_execute | 执行写语句(INSERT/UPDATE/DELETE/CREATE/ALTER);高危 SQL(DROP/TRUNCATE/SHUTDOWN)不执行,返回可复制卡片 |
db_list_tables | 列出 MySQL/PostgreSQL 当前 schema 的表 |
db_describe_table | 完整表结构:列、索引、外键、行数/容量估计、MySQL 附 SHOW CREATE TABLE DDL |
db_preview | 按表名分页采样数据(LIMIT/OFFSET 参数绑定,标识符白名单防注入),附全表行数估计,无需手写 SQL |
db_explain | 查看查询执行计划(EXPLAIN FORMAT=JSON),检查索引使用 |
db_tx_begin / db_tx_execute / db_tx_commit / db_tx_rollback | 交互式事务工作流:开事务 → 执行变更 → SELECT 验证 → 提交/回滚(独占连接,闲置 5 分钟自动回滚) |
db_run | 在 Redis 上跑命令(command+args),或在 MongoDB 上跑 find/findOne/insertOne/updateOne/deleteOne/countDocuments |
db_disconnect | 关闭数据库连接 |
db_query 用于 SQL 只读查询,db_execute 用于 SQL 写操作,db_run 用于 Redis/MongoDB。MySQL 用 ? 占位符、PostgreSQL 用 $1 占位符。