SSH Linux控制服务

通过OpenWebUI直接控制Linux虚拟机的SSH服务,提供自动安全检查和实时命令输出。

  • by Yutooop
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 Jutop/MCP_Linux_Administration_SSH-OpenWebUI_Tool

使用说明

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 --build

3.连接到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-mcp

4.向OpenWebUI添加工具

  1. 打开OpenWebUI → 工作区→ Tools
  2. 点击 +创建工具
  3. 复制并粘贴以下内容的全部内容 ssh_linux_control.py
  4. 保存

完成! 🎉

使用示例

询问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 <openwebui-network> 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许可证-请参阅 许可证 详细信息文件