DjangoAILab/dsh-plugins--plugins-manual-ops-ssh-manager ↗★ 1
ops-ssh-manager
DSH 原生运维管理插件:插件配置区管理页(主机 / SSH 密钥 / 导入导出 / 审查等级)+ 方法调用 SSH 工具(ssh_exec / ssh_list_hosts)+ 严格模式强制审批(单次 / 本 session),密钥与密码经 credentials 服务隔离,绝不出 Host。 适合需通过 SSH 管理远程主机的运维用户,支持严格审批模式。
インストール
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:DjangoAILab/dsh-plugins#18ae7e5df085d28e7a573d1e3ef0286bda1ea793&path:plugins/manual/ops-ssh-managerドキュメント
README 全文を読む ↗2.2 配置(全部可选,见 cordis.patch.yml)
ops-ssh-manager:
dataDir: '' # 留空 = $DSH_HOME/ops-ssh-manager
auditLog: '' # 留空 = /audit.jsonl
2.3 使用
- 打开「设置 → 插件 → 运维 SSH 管理」:先「导入私钥」;再「新增主机」(填代号/地址/用户/认证方式/审查等级), 点「测试连接并获取指纹」→「保存主机」。
- 在会话里让模型先调
ssh_list_hosts(返回sudo模式),再ssh_exec(code=…, command=…); 需要 root 时传elevate: true(命令本体不带 sudo)。提权走两阶段协议:免密机器直接执行, 密码机器由插件注入登记的 sudo 密码(单次尝试,绝不重试)。 - 把某主机
review设为strict后,所有命令都会弹审批(允许一次 / 本 session 允许 / 拒绝); 提权请求即使主机是 normal 也会单独弹提权审批,两种「本 session 允许」相互独立。 - 存量数据迁移(v1 → v2,一次性):
node scripts/migrate-roster-v2.mjs(dataDir 留空即默认$DSH_HOME/ops-ssh-manager),然后重启 DSH。