一个功能弱小的 AstrBot 插件,允许您通过聊天窗口连接远程 SSH 服务器并执行命令。支持交互式 Shell 会话、状态保持、LLM 函数调用,并具备不完善的安全保护机制。
- 交互式 Shell:支持
cd、export等上下文命令,状态在会话期间保持。 - 自动图片渲染:命令输出过长时自动转换为图片发送,保持聊天界面整洁。
- LLM 函数调用:支持大语言模型通过工具调用执行 SSH 命令(如“帮我看看服务器内存占用”)。
- 安全保护:
- 仅限管理员使用。
- 内置黑名单,禁止 LLM 执行
rm -rf、mkfs等高危指令。
- 智能管理:
- 自动管理 SSH 连接,闲置 30 分钟(可配置)后自动断开。
- 支持
/ssh out手动断开连接。
将本插件文件夹 astrbot_plugin_ssh 放置于 AstrBot 的 data/plugins/ 目录下。
启用插件后,请在 AstrBot 管理面板 -> 插件配置中填写服务器信息:
| 配置项 | 描述 | 默认值 |
|---|---|---|
host |
SSH 服务器地址 (IP 或域名) | 192.168.1.128 |
port |
SSH 端口 | 22 |
username |
登录用户名 | xjy |
password |
登录密码 | (空格) |
timeout |
连接超时时间 (秒) | 10 |
idle_timeout |
闲置自动断开时间 (分钟) | 30 |
⚠️ 注意:密码以明文存储在配置文件中,请确保您的 AstrBot 部署环境安全。
注意:所有指令仅限管理员使用。
-
执行命令:
/ssh <命令>例如:
/ssh ls -la,/ssh free -m。 由于是交互式 Shell,你可以先/ssh cd /var/www,下一条/ssh ls就会列出/var/www的内容。 -
断开连接:
/ssh out强制关闭当前 SSH 会话和进程。
直接在对话中通过自然语言请求:
- “连接服务器查看一下 CPU 占用”
- “去 /home/admin 目录下看看有什么文件”
- “帮我重启一下 nginx 服务” (如果 LLM 判断安全)
为了防止误操作,插件内置了针对 LLM 调用的安全检查,以下命令模式将被拦截:
rm -rf/rm -rmkfs(格式化)dd(磁盘操作)shutdown/reboot/init 0- Fork炸弹及其他高危操作
- 初始版本发布。
- 支持交互式 Shell、LLM 调用。