使用说明
SSH MCP服务器
MCP(模型上下文协议)服务器,使AI助手能够在远程服务器上执行SSH命令。这解决了终端SSH连接需要手动输入密码的问题。
特性
- 执行SSH命令:在远程服务器上运行一次性命令,而不维护持久连接
- 会话管理:创建、列出和管理持久SSH会话
- 交互式 shell:发送命令并从交互式shell会话中检索输出
- 连接测试:在创建会话之前测试SSH连接
可用的MCP工具
| 工具 | 说明 |
|---|---|
test_ssh_connection |
在不创建持久会话的情况下测试与服务器的SSH连接 |
execute_ssh_command |
在远程服务器上执行单个SSH命令(一次性) |
start_ssh_session |
启动新的持久SSH会话 |
list_ssh_sessions |
列出所有活动的SSH会话 |
end_ssh_session |
按ID结束/关闭SSH会话 |
end_all_ssh_sessions |
结束所有活动的SSH会话 |
session_execute_command |
在现有SSH会话中执行命令 |
session_send_input |
向SSH会话的交互式shell发送输入 |
get_session_output |
从SSH会话的交互式shell获取输出缓冲区 |
clear_session_output |
清除SSH会话的输出缓冲区 |
get_session_info |
获取特定SSH会话的详细信息 |
运行服务器
先决条件
- .NET 9.0 SDK
运行服务器
cd SshMcpServer
dotnet run --project SshMcpServer.csproj
服务器将于启动 http://localhost:5100 默认情况下。
端点
POST /mcp-MCP协议端点(服务器发送事件)GET /health-健康检查端点GET /sessions-列出活动会话(调试)
配置
适用于克劳德桌面
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"ssh-mcp-server": {
"url": "http://localhost:5100/mcp",
"transport": "sse"
}
}
}
VS代码/继续
添加到MCP配置中:
{
"mcpServers": {
"ssh-mcp-server": {
"url": "http://localhost:5100/mcp",
"transport": "sse"
}
}
}
示例用法
测试连接
Test SSH connection to host: myserver.com, port: 22, user: admin, password: mypassword
一次性命令
Execute the command "df -h" on myserver.com as user admin with password mypassword
基于会话的工作
-
启动会话:
Start SSH session to myserver.com as root with password admin123 -
执行命令:
In session abc123, execute "cd /var/log && ls -la" -
结束会话:
End SSH session abc123
安全考虑
⚠️ 警告:此服务器处理SSH凭据。确保:
- 仅在受信任的网络上运行
- 不要将服务器暴露在公共互联网上
- 尽可能使用强密码或基于密钥的身份验证
- 服务器仅在活动会话期间将密码存储在内存中
发展
构建
dotnet build
运行测试
cd SshTest
dotnet run
许可证
麻省理工学院
