使用说明
SSH MCP服务器
用于通过SSH管理Linux服务器的模型上下文协议(MCP)服务器。此服务器提供用于在远程Linux系统上执行命令、管理文件、监视服务和分析日志的工具。
安装
Docker(推荐)
- 复制环境文件并配置SSH凭据:
cp env.example .env
# Edit .env with your SSH server details
- 使用Docker Compose构建和运行:
docker compose up -d
手动安装
- 安装依赖项:
pip install -r requirements.txt
- 设置环境变量:
export SSH_HOST=your-server.example.com
export SSH_USER=root
export SSH_PASSWORD=your_password
# OR
export SSH_KEY_FILE=/path/to/private/key
- 运行服务器:
python -m ssh_mcp_server.server
任何LLM集成
将以下配置添加到您的 anythingllm_mcp_servers.json:
{
"mcpServers": {
"ssh-mcp-server": {
"name": "SSH MCP Server",
"type": "streamable",
"url": "http://ssh-mcp-server:8000/mcp",
"auth_token": null,
"enabled": true
}
}
}
配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
SSH_HOST |
目标服务器主机名或IP | localhost |
SSH_USER |
SSH用户名 | root |
SSH_PASSWORD |
SSH密码 | - |
SSH_KEY_FILE |
SSH私钥的路径 | - |
SSH_PORT |
SSH端口 | 22 |
SERVER_HOST |
MCP服务器绑定地址 | 0.0.0.0 |
SERVER_PORT |
MCP服务器端口 | 8000 |
认证
服务器支持两种身份验证方法:
- 密码验证:设置
SSH_PASSWORD在您的环境中 - 基于密钥的身份验证:设置
SSH_KEY_FILE转到私钥的路径
用法
基本连接测试
# Test SSH connection
test_ssh_connection(
hostname="server.example.com",
username="root",
password="your_password"
)
执行命令
# Execute a simple command
execute_command("ls -la /var/log")
# Execute with sudo
execute_command("systemctl status nginx", use_sudo=True)
文件操作
# Read a file
read_file("/etc/nginx/nginx.conf")
# Write to a file
write_file("/tmp/test.txt", "Hello World!")
# List directory contents
list_directory("/var/log")
服务管理
# Check service status
get_service_status("nginx")
# Start a service
start_service("nginx")
# Stop a service
stop_service("nginx")
# Restart a service
restart_service("nginx")
进程管理
# List all processes
list_processes()
# List specific processes
list_processes(filter_by="nginx")
# Kill a process
kill_process("12345", signal="TERM")
网络工具
# Check if port is open
check_port(80)
# Get network connections
get_network_connections()
日志分析
# Tail a log file
tail_log("/var/log/nginx/access.log", lines=100)
# Search in logs
search_log("/var/log/nginx/error.log", "error")
安全考虑
- 尽可能使用基于SSH密钥的身份验证
- 限制SSH访问特定用户和IP
- 定期轮换SSH密钥和密码
- 监控SSH访问日志
- 谨慎使用sudo并限制sudo权限
故障排除
连接问题
- 认证失败:检查用户名、密码或密钥文件
- 连接被拒绝:验证SSH服务是否正在运行以及端口是否正确
- 主机密钥验证:确保服务器的主机密钥受信任
权限问题
- 文件访问被拒绝:检查文件权限和所有权
- Sudo必填:使用
use_sudo=True用于特权操作 - 服务管理:确保用户具有适当的systemd权限
性能问题
- 慢速命令:增加长时间运行的命令的超时值
- 连接超时:检查网络连接和服务器负载
- 资源使用情况:在操作期间监视服务器资源
API 参考
服务器公开了以下MCP工具:
test_ssh_connection:测试SSH连接get_server_info:获取系统信息execute_command:执行命令read_file:读取文件内容write_file:写入文件内容list_directory:列出目录内容get_service_status:检查服务状态start_service:启动服务stop_service:停止服务restart_service:重新启动服务list_processes:列出正在运行的进程kill_process:终止进程check_port:检查端口状态get_network_connections:获取网络连接tail_log:尾部日志文件search_log:搜索日志文件
许可证
该项目根据MIT许可证获得许可。