使用说明
SSH MCP服务器-安全远程命令执行
此项目是一个MCP(模型上下文协议)服务器,允许您 安全地 和 可控地 通过AI代理(Cursor、Antigravity、Claude Desktop等)在Linux服务器上运行命令。
🎯 主要特点
- 🛡️ 注重安全:只能执行您明确允许的命令(Allowlist)。
- 🔑 安全访问:使用基于SSH密钥的身份验证;无需密码。
- ⏱️ 超时保护:自动终止长时间运行的命令。
- 📊 详细输出:以干净的格式向代理程序显示命令结果(stdout、stderr、exit代码)。
- 🛠️ 集成工具:包括用于连接测试、配置查看和列出允许命令的工具。
🏗️ 建筑
graph LR
A[AI Agent<br/>Cursor/Antigravity] -- MCP --> B[SSH MCP Server<br/>Local/VM]
B -- SSH --> C[Target Linux Server]
为什么选择这个中间件层?
- 您将AI代理限制为特定操作,而不是直接访问终端。
- 基于正则表达式的allowlist可防止命令注入和未经授权的文件访问。
- 正在连接的用户(
ai-runner)可以在目标服务器上以最小权限进行隔离。
🚀 快速开始
1.先决条件
- Python 3.10+
- 目标服务器上的受限SSH用户(例如。,
ai-runner) - SSH密钥(位于
~/.ssh/在您的本地计算机上)
2.安装
git clone https://github.com/volkan-m/ssh-mcp-server.git
cd ssh-mcp-server
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
3.配置
设置以下环境变量:
| 变量 | 描述 | 默认值 |
|---|---|---|
SSH_HOST |
服务器IP或主机名 | 必需 |
SSH_USER |
SSH用户名 | ai-runner |
SSH_KEY |
私钥路径 | ~/.ssh/ai_runner |
SSH_PORT |
SSH端口 | 22 |
COMMAND_TIMEOUT |
最大命令持续时间(秒) | 30 |
4.跑步
python ssh_mcp_server.py
📖 详细文件
检查 docs/ 更多详细指南的文件夹:
🛡️ 安全和允许名单
允许的命令在中定义为正则表达式模式 ALLOWED_COMMANDS 列表内 ssh_mcp_server.py.
例子:
ALLOWED_COMMANDS = [
r"^systemctl status [a-zA-Z0-9.-]+$", # Only status checks
r"^df -h$", # Disk usage
]
🎮 工具
ssh_exec(command):执行指定的命令。ssh_test_connection():验证服务器连接。ssh_list_allowed():列出允许的命令模式。ssh_get_config():显示当前运行时配置。
🤝 贡献
- 分叉项目。
- 创建要素分支(
git checkout -b feature/NewFeature). - 提交您的更改(
git commit -am 'Add new feature'). - 推到分支(
git push origin feature/NewFeature). - 打开拉取请求。
📄 许可证
该项目根据 MIT许可证。请参阅 许可证 文件以获取详细信息。
开发人: 沃尔坎-m 版本: 1.1.0
