README
🚀 MCP 服务器 SSH
MCP 服务器 SSH 是一款用于提供安全 SSH 访问的工具,具备密钥管理功能。它支持客户端通过 SSH 协议连接服务器,还能借助配套的 HTTP 密钥管理服务器,简化客户端公钥的注册流程。
🚀 快速开始
MCP 服务器 SSH 能让你安全地进行 SSH 连接,并通过密钥管理服务器简化公钥注册。你可以按照以下步骤开始使用。
✨ 主要特性
- 提供安全的 SSH 访问。
- 支持密钥管理功能,可简化客户端公钥注册流程。
- 可选择性运行 HTTP 密钥管理服务器。
- 默认绑定到 localhost 提高安全性。
- 自动生成具有安全权限的密钥。
- 支持客户端 IP 地址白名单限制。
📦 安装指南
使用命令行运行
uv run m2m-mcp-server-ssh-server --help
参数选项
| 参数 | 详情 |
| ---- | ---- |
| --host | SSH 服务器绑定的主机地址,默认为 127.0.0.1 |
| --port | SSH 服务器监听的端口,默认为 8022 |
| --authorized-clients | 授权客户端密钥文件路径,默认为 ~/.ssh/authorized_keys |
| --server-key | 服务器私钥文件路径,默认为 ~/.ssh/m2m_mcp_server_ssh_server |
| --passphrase | 私钥密码(可选) |
| --servers-config | 服务器配置 JSON 文件路径,默认为 servers_config.json |
| --log-level | 设置日志级别,默认为 INFO |
| --run-key-server | 运行 HTTP 密钥管理服务器 |
| --key-server-port | HTTP 密钥管理服务器的端口,默认为 8000 |
| --key-server-host | HTTP 密钥管理服务器的主机,默认为 127.0.0.1 |
| --version | 显示版本信息并退出 |
⚠️ 重要提示
当绑定到所有接口(0.0.0.0)时,您的服务器将可以从能够访问您系统的任何机器访问。请确保使用强身份验证,并考虑使用防火墙等额外安全措施。
💻 使用示例
密钥管理服务器
您可以选择性地运行一个 HTTP 密钥管理服务器来简化客户端密钥注册:
uv run m2m-mcp-server-ssh-server --run-key-server
这将启动:
- SSH 服务器监听 8022 端口
- 密钥管理 HTTP 服务器监听 8000 端口(默认仅限 localhost)
密钥管理 API
密钥管理服务器提供以下接口:
基础用法
# 注册客户端公钥
curl -X POST -H "Content-Type: application/json" \
-d '{"client_pub_key": "ssh-rsa AAAA..."}' \
http://localhost:8000/register
上述代码展示了如何使用 curl 命令向密钥管理服务器注册客户端公钥。
高级用法
# 获取服务器的公钥
curl http://localhost:8000/server_pub_key
# 检查服务器健康状态
curl http://localhost:8000/health
上述代码展示了如何使用 curl 命令获取服务器的公钥和检查服务器的健康状态。
接口详情
-
POST /register- 注册客户端公钥- 请求体:
{"client_pub_key": "ssh-rsa AAAA..."} - 响应:
{"status": "success"}或错误信息
- 请求体:
-
GET /server_pub_key- 获取服务器的公钥- 响应:
{"server_pub_key": "ssh-ed25519 AAAA..."}
- 响应:
-
GET /health- 检查服务器健康状态- 响应:
{"status": "healthy"}
- 响应:
🔧 技术细节
安全注意事项
- 默认绑定到 localhost(127.0.0.1)以提高安全性。
- 自动生成具有安全权限的密钥(如果没有提供)。
- 默认密钥位置为
~/.ssh/m2m_mcp_server_ssh_server。 - 私钥使用 0644 权限进行保护。
- 支持客户端 IP 地址白名单限制。
依赖项
- Python 3.8+
- pip 包管理器
- cryptography 库(用于加密操作)
开发环境设置
git clone https://github.com/yourusername/mcp-server-ssh.git
cd mcp-server-ssh
pip install -r requirements.txt
python main.py --help
🤝 贡献指南
提交代码
- Fork 项目仓库。
- 创建功能分支:
git checkout -b feature/new-feature。 - 提交更改:
git commit -m "添加新功能"。 - 推送到分支:
git push origin feature/new-feature。 - 创建 Pull Request。
开发规范
- 遵循 PEP8 代码风格指南。
- 添加单元测试用例。
- 确保文档更新。
- 提交前运行格式检查:
black .。
📄 许可证
本项目采用 MIT 许可证,详见 LICENSE 文件。
微信扫一扫