使用说明
Linux MCP服务器安装指南
此MCP服务器允许您通过SSH在远程主机上安全地执行Linux命令。
特性
- 执行任意Linux命令 在远程主机上
- 系统信息收集 (主机名、操作系统、内存、磁盘使用情况等)
- 目录列表 具有详细的选项
- 文件 操作 (读、写、追加)
- 安全认证 通过SSH密钥或密码
- 基于环境的配置 获取凭据
- 连接管理 自动重新连接
安装
- 安装依赖项:
pip install -r requirements.txt
- 创建环境文件:
cp .env.example .env
- 编辑
.env使用您的凭据:
# Required settings
LINUX_HOST=your-server-ip
LINUX_USERNAME=your-username
# Authentication: Use either password OR SSH key (SSH key is recommended)
# Option 1: Password authentication
LINUX_PASSWORD=your_password
# Option 2: SSH key authentication (recommended)
LINUX_SSH_KEY_PATH=/path/to/your/private/key
# Optional: Connection timeout in seconds
LINUX_TIMEOUT=30
# Optional: Logging level (DEBUG, INFO, WARNING, ERROR)
LOG_LEVEL=INFO
# Enable/disable warnings (default: true)
LINUX_ENABLE_WARNINGS=true
# Block critical commands entirely (default: false)
LINUX_BLOCK_CRITICAL=false
# Requires confirmation for high/critical commands (default: true)
# Disables confirmation requirement (only shows warnings) if false
LINUX_REQUIRE_CONFIRMATION=true
配置选项
必需变量
LINUX_HOST:目标Linux系统的IP地址或主机名LINUX_USERNAME:SSH连接的用户名
身份验证(选择一个)
LINUX_SSH_KEY_PATH:SSH私钥文件的路径(推荐)LINUX_PASSWORD:SSH密码(不太安全)
可选变量
LINUX_PORT:SSH端口(默认值:22)LINUX_TIMEOUT:连接超时(秒)(默认值:30)LOG_LEVEL:日志记录级别(默认值:INFO)LINUX_ENABLE_WARNINGS:启用/禁用警告(默认值:true)LINUX_BLOCK_CRITICAL:完全阻止关键命令(默认值:false)LINUX_REQUIRE_CONFIRMATION:需要确认高/关键命令(默认值:true)。否则,禁用确认要求(仅显示警告)-⚠️⚠️⚠️ 危险!!! ⚠️⚠️⚠️
重要配置通知
警告: Linux MCP服务器支持配置更改和潜在的关键命令执行,但请确保仅当您希望加载LLM生成的配置和/或在Linux服务器上执行潜在的关键指令时才使用此功能。
始终检查LLM正在生成的配置或正在执行的命令 并且只有当工具的配置/执行符合您的用例时,才允许执行。
SSH密钥设置(推荐)
- 生成SSH密钥对(如果没有):
ssh-keygen -t rsa -b 4096 -f ~/.ssh/linux_mcp_key
- 将公钥复制到目标主机:
ssh-copy-id -i ~/.ssh/linux_mcp_key.pub username@your-server-ip
- 在.env中设置密钥路径:
LINUX_SSH_KEY_PATH=/home/user/.ssh/linux_mcp_key
运行服务器
直接使用您的系统python:
python linux_mcp_server.py
直接在虚拟环境中使用python uv:
uv run python linux_mcp_server.py
可用工具
1.执行命令
在远程主机上执行任何Linux命令。
- 参数:
command(必填):要执行的Linux命令timeout(可选):命令超时(秒)
例子:
{
"command": "ps aux | grep python",
"timeout": 60
}
2.get_system_info
获取全面的系统信息,包括主机名、操作系统、内存、磁盘使用情况和CPU信息。
示例用法: 无需参数。
3.列表目录
列出目录的内容。
- 参数:
path(可选):目录路径(默认:当前目录)detailed(可选):显示包含权限、大小等的详细列表。
例子:
{
"path": "/var/log",
"detailed": true
}
4.文件操作
执行文件读/写操作。
- 参数:
operation(必填):“读取”、“写入”或“附加”file_path(必填):文件路径content(写入/附加时需要):要写入/附加的内容
例子:
{
"operation": "write",
"file_path": "/tmp/test.txt",
"content": "Hello, World!"
}
安全注意事项
- 使用SSH密钥而不是密码 尽可能
- 限制用户权限 在目标主机上
- 使用专用用户 用于MCP操作
- 确保.env文件的安全 永远不要将其提交给版本控制
- 考虑防火墙规则 限制SSH访问
- 定期按键轮换 增强安全性
故障排除
连接问题
- 验证主机IP和端口是否正确
- 检查SSH服务是否在目标主机上运行
- 确保防火墙允许SSH连接
- 验证SSH密钥权限(应为600)
身份验证问题
- 检查用户名是否正确
- 对于SSH密钥:确保公钥在
~/.ssh/authorized_keys在目标主机上 - 对于密码:验证密码是否正确,帐户是否未锁定
权限问题
- 确保用户对您尝试执行的命令具有必要的权限
- 考虑使用
sudo如果需要,在命令中(适当配置sudoers)
示例.env文件
# Production server
LINUX_HOST=192.168.1.100
LINUX_PORT=22
LINUX_USERNAME=mcpuser
LINUX_SSH_KEY_PATH=/home/user/.ssh/production_key
LINUX_TIMEOUT=30
LOG_LEVEL=INFO
LINUX_ENABLE_WARNINGS=true
LINUX_BLOCK_CRITICAL=true
LINUX_REQUIRE_CONFIRMATION=true
与MCP客户端集成
此服务器遵循MCP(模型上下文协议)规范,可以与任何兼容MCP的客户端集成。服务器通过stdio进行通信,并提供客户端可以发现和使用的结构化工具定义。
安全
已成功进行最大安全配置。Linux MCP服务器配置了最大安全设置:
Configuration Applied:
Environment Variables Set:
LINUX_ENABLE_WARNINGS=true # Show all warnings
LINUX_BLOCK_CRITICAL=true # Block critical commands entirely
LINUX_REQUIRE_CONFIRMATION=true # Require confirmation for dangerous commands
安全行为现已激活:
🛡️ 关键命令(rm-rf/,dd of=/dev/等)**
完全阻止-即使确认也无法执行 将显示解释该块的错误消息
⚠️ 高风险命令(关机、重启、终止等)
需要确认-必须先询问用户,然后使用confirm_dangerous=true重新运行 显示有关风险的详细警告
⚡ 中等风险命令(chmod、docker等)
显示警告-执行时显示安全警告
✅ 安全命令
正常执行,无警告
这意味着:
在运行关闭、重启、终止等危险命令之前,我总是会要求确认。 关键命令将被完全阻止-像rm-rf/、dd of=/dev/sda、mkfs这样的命令根本无法执行 所有警告均已启用-您将看到任何潜在危险操作的详细风险分析 该系统现在得到了最大程度的保护,同时仍然可以进行合法操作
Linux MCP服务器现在配置了最高级别的安全保护。当服务器重新启动时,它将加载这些新设置并强制执行最大安全协议。
