MCP服务器-用于OpenWebUI的SSH Linux控件
通过SSH直接从OpenWebUI控制Linux VM,并对破坏性命令进行自动安全检查。
快速设置
1.配置您的虚拟机
复制示例配置并对其进行编辑:
cp config.yaml.example config.yaml
nano config.yaml # or use your preferred editor添加您的虚拟机:
hosts:
vm1:
hostname: "192.168.1.100"
username: "root"
password: "yourpassword"
description: "My Server"2.启动服务器
docker compose up -d --build3.连接到OpenWebUI网络
# Find your OpenWebUI network name
docker network ls | grep openwebui
# Connect the container (replace 'openwebui_default' with your network name)
docker network connect openwebui_default ssh-control-mcp4.向OpenWebUI添加工具
- 打开OpenWebUI → 工作区→ Tools
- 点击 +创建工具
- 复制并粘贴以下内容的全部内容
ssh_linux_control.py - 保存
完成! 🎉
使用示例
询问OpenWebUI:
- “列出我的虚拟机”
- “连接到vm1并检查磁盘空间”
- “显示vm1上的内存使用情况”
- “在我的服务器上运行'systemctl status nginx'”
特性
✅ 基于密码的SSH身份验证(无需密钥)\ ✅ 自动破坏性命令检测\ ✅ Sudo支持(使用配置中的密码)\ ✅ 检测到40多种破坏性命令模式\ ✅ 实时命令输出
破坏性指挥安全
命令如下 rm -rf, shutdown, systemctl stop等需要明确确认:
- 首次尝试:显示警告
- 请重试
confirmed=True执行
故障排除
工具无法连接到服务器:
# Check container is running
docker ps | grep ssh-control-mcp
# Check logs
docker logs ssh-control-mcp
# Test API
curl http://localhost:3000/api/hosts如果OpenWebUI是容器化的,确保两个容器位于同一网络上:
docker network connect ssh-control-mcp文件结构
config.yaml.example-示例配置(提交安全)config.yaml-您的虚拟机凭据(被忽略,请勿提交)ssh_linux_control.py-OpenWebUI工具文件docker-compose.yml-容器配置src/ssh_control_mcp/-MCP服务器和HTTP包装器
安全说明
⚠️ 永远不要承诺 config.yaml -它包含纯文本密码\ ⚠️ 使用 config.yaml.example 作为模板\ ⚠️ 仅适用于受信任网络上的本地VM管理
许可证
MIT许可证-请参阅 许可证 详细信息文件
