你是否曾经希望AI能够通过SSH安全地连接远程服务器,执行命令、上传下载文件、管理目录?今天要介绍的开源项目MCP SSH服务器,正是为了实现这个目标而设计的。它是一个针对MCP的安全SSH服务器实现,支持远程命令执行和文件操作,同时支持基于密码和密钥的身份验证。
项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | MCP SSH服务器 |
| GitHub地址 | https://github.com/shaike1/mcp-server-ssh |
| 项目描述 | 针对模型上下文协议的安全SSH服务器实现, enables远程命令执行和文件操作,同时支持基于密码和密钥的身份验证。 |
| 作者 | shaike1 |
| 开源协议 | MIT License |
| 开源状态 | 公开状态 |
| Languages | TypeScript |
| 支持平台 | Windows / macOS / Linux |
| 最后更新 | 2026-04-23 |
一、项目介绍
MCP SSH服务器是一个让AI能够通过SSH协议安全连接远程服务器的MCP工具。它支持密码和密钥两种认证方式,提供远程命令执行、文件上传下载、目录操作等功能。
这个服务器提供了以下核心功能:
- SSH连接管理:支持密码和密钥认证
- 远程命令执行:在远程服务器上执行命令
- 文件操作:上传和下载文件
- 目录操作:列出目录内容
- 批量文件传输:支持批量文件操作
- 进度跟踪:文件传输进度跟踪
二、核心优势
安全连接
支持SSH协议,提供安全的远程访问。
双认证方式
支持密码认证和密钥认证,灵活选择。
文件操作完整
支持文件上传、下载、目录列表等操作。
命令执行
在远程服务器上执行任意命令。
详细日志
提供详细的连接和操作日志。
三、适用场景
远程服务器管理
让AI通过SSH管理远程服务器,执行运维命令。
自动化部署
AI可以自动上传文件、执行部署脚本。
文件同步
自动同步本地和远程文件。
批量操作
在多个服务器上批量执行命令。
四、安装教程
系统要求
| 工具 | 用途 | 下载/安装方式 |
|---|---|---|
| Node.js | 运行环境 | [https://nodejs.org/] (版本要求:18.0 或以上) |
| SSH服务器 | 远程目标 | 已有SSH服务 |
| MCP客户端 | 如Claude Desktop等 | 根据客户端官网下载 |
安装步骤
第一步:安装软件包
npm install mcp-ssh第二步:配置Claude Desktop
找到配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
添加配置:
{
"mcpServers": {
"ssh": {
"command": "node",
"args": ["%APPDATA%/npm/node_modules/mcp-ssh/dist/server.js"],
"env": {
"SSH_PORT": "8889",
"SSH_LOG_LEVEL": "info"
}
}
}
}第三步:重启Claude Desktop
保存配置后,重启Claude Desktop。
五、使用示例
示例1:密码认证连接
$body = @{
id = "test"
host = "example.com"
port = 22
username = "user"
password = "pass123"
} | ConvertTo-Json
Invoke-RestMethod -Uri "http://localhost:8889/connect" -Method Post -Body $body -ContentType "application/json"示例2:密钥认证连接
$body = @{
id = "test"
host = "example.com"
port = 22
username = "user"
privateKey = Get-Content ~/.ssh/id_rsa | Out-String
passphrase = "optional-key-passphrase"
} | ConvertTo-Json
Invoke-RestMethod -Uri "http://localhost:8889/connect" -Method Post -Body $body -ContentType "application/json"示例3:执行命令
$execBody = @{
id = "test"
command = "ls -la"
} | ConvertTo-Json
Invoke-RestMethod -Uri "http://localhost:8889/exec" -Method Post -Body $execBody -ContentType "application/json"示例4:上传文件
$uploadForm = @{
file = Get-Item -Path "localfile.txt"
remotePath = "/remote/path/file.txt"
}
Invoke-RestMethod -Uri "http://localhost:8889/upload/test" -Method Post -Form $uploadForm示例5:下载文件
Invoke-RestMethod -Uri "http://localhost:8889/download/test?remotePath=/remote/path/file.txt" -Method Get -OutFile "downloaded.txt"示例6:列出目录
Invoke-RestMethod -Uri "http://localhost:8889/ls/test?path=/remote/path" -Method Get示例7:获取连接状态
Invoke-RestMethod -Uri "http://localhost:8889/status/test" -Method Get六、开发指南
克隆仓库并构建
git clone https://github.com/shaike1/mcp-server-ssh.git
cd mcp-server-ssh
npm install
npm run build
npm start环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
| SSH_PORT | 8889 | 服务器端口 |
| SSH_LOG_LEVEL | info | 日志级别 |
七、常见问题
问题1:连接失败
解决方案:检查主机地址、端口、用户名和密码/密钥是否正确。
问题2:密钥认证失败
解决方案:确认私钥路径正确,如果有密码短语需要提供。
问题3:文件上传失败
解决方案:检查远程路径是否有写入权限。
问题4:命令执行超时
解决方案:检查网络连接,减少命令复杂度。
问题5:端口被占用
解决方案:修改SSH_PORT环境变量使用其他端口。
八、总结
MCP SSH服务器是一个让AI能够通过SSH安全连接远程服务器的MCP工具,提供了命令执行和文件操作功能。
这个项目的最大价值在于:
- 安全连接:基于SSH协议,支持密码和密钥认证
- 功能完整:命令执行、文件上传下载、目录操作
- 批量传输:支持批量文件操作
- 进度跟踪:文件传输进度可见
- MIT许可证:可自由使用和修改
如果你需要让AI通过SSH管理远程服务器,MCP SSH服务器是一个非常实用的工具。
日志级别可配置。
PowerShell示例很详细。
支持批量文件传输。
和传统的SSH客户端相比,这个更AI友好。
希望未来能支持更多SSH功能。