你有没有想过,让 AI 助手像运维工程师一样直接登录你的服务器执行命令、上传文件、管理服务?SSH MCP Server 就是实现这个能力的桥梁。
本文将介绍 SSH MCP Server 的原理、主流实现方案、配置方法,以及我的实际使用经验。
什么是 MCP?
MCP(Model Context Protocol,模型上下文协议)是 Anthropic 在 2024 年底推出的开放协议,用于标准化 AI 模型与外部工具之间的通信。你可以把它理解为 AI 世界的 USB-C 接口——一个协议,连接一切。
MCP 采用 Client-Server 架构:
- MCP Client:AI 应用(如 Claude Code、Claude Desktop、Cursor、VS Code Copilot 等)
- MCP Server:提供具体工具能力的服务端(数据库查询、文件操作、SSH 连接等)
- 通信方式:通过 STDIO 或 HTTP 传输 JSON-RPC 消息
1 | 用户请求 → AI Client → MCP Client → MCP Server → 外部系统 |
SSH MCP Server 是什么?
SSH MCP Server 是一类实现了 MCP 协议的工具,它将 SSH 能力封装为标准的 MCP 工具,让 AI 助手可以:
- 执行远程命令:
ls、systemctl、docker、nginx -t等任何 shell 命令 - 上传/下载文件:通过 SFTP 在本地和远程之间传输文件
- 管理多台服务器:预配置多个连接,按名称切换
- 安全隔离:SSH 凭证由 MCP Server 持有,不暴露给 AI 模型本身
核心价值
传统运维流程:
1 | 想做什么 → 打开终端 → ssh 登录 → 敲命令 → 看结果 → 判断 → 再敲命令... |
有了 SSH MCP Server:
1 | 用自然语言告诉 AI 你想做什么 → AI 自动规划并执行 → 你确认结果 |
主流 SSH MCP Server 方案对比
2026 年活跃的 SSH MCP Server 项目主要有以下几个:
| 项目 | npm 包名 | Stars | 特点 |
|---|---|---|---|
| ssh-mcp-server (fangjunjie) | @fangjunjie/ssh-mcp-server |
300+ | 中文社区活跃,支持预配置多服务器,工具简洁 |
| ssh-mcp (tufantunc) | ssh-mcp |
340+ | TypeScript 实现,支持 sudo/su 提权,超时保护 |
| ssh-mcp-server (zibdie) | @zibdie/ssh-mcp-server |
— | 跨平台友好,一键安装,支持脚本执行 |
| mcp-ssh (aionda) | @aiondadotcom/mcp-ssh |
— | 自动发现 ~/.ssh/config 主机,原生 SSH 工具 |
安装与配置
以 @fangjunjie/ssh-mcp-server 为例(这也是我在用的方案),介绍完整配置流程。
方式一:Claude Code CLI 添加
1 | claude mcp add ssh-mcp-server \ |
如果使用 SSH 密钥认证,将 --password 替换为 --privateKey /path/to/key。
方式二:配置文件
编辑 ~/.claude/settings.json(全局)或项目根目录的 .mcp.json:
1 | { |
Windows 用户注意:需要用
cmd /c npx替代npx,因为 Windows 的npx是.cmd批处理文件,child_process.spawn()无法直接执行。
方式三:多服务器配置
可以通过 JSON 配置文件管理多台服务器:
1 | { |
配置文件示例:
1 | [ |
可用工具
| 工具 | 功能 | 使用场景 |
|---|---|---|
execute-command |
执行远程 shell 命令 | 服务管理、日志查看、配置修改 |
upload |
上传本地文件到服务器 | 部署配置文件、上传脚本 |
download |
从服务器下载文件 | 备份文件、获取日志 |
list-servers |
列出所有配置的服务器 | 多服务器环境切换 |
实际使用场景
场景一:博客域名配置
这是我的真实案例。我让 Claude Code 通过 SSH MCP Server 帮我完成了整个博客域名配置:
- 检查 DNS 解析:
dig +short 1e9.uno A @8.8.8.8 - 修改 Nginx 配置:直接写入
/etc/nginx/conf.d/hexo.conf - 申请 SSL 证书:
certbot --nginx -d 1e9.uno - 验证结果:
curl -skI https://1e9.uno
整个过程 AI 自主规划执行,遇到问题(比如 DNS 未生效)会自动诊断原因并给出建议。
场景二:服务状态巡检
1 | "帮我检查所有 Docker 容器的运行状态" |
场景三:日志分析与故障排查
1 | "Nginx 最近有没有 5xx 错误?" |
场景四:批量配置修改
1 | "把 Cloudreve 的 SiteURL 从 IP 改成域名" |
安全注意事项
SSH MCP Server 很强大,但权力越大责任越大:
1. 最小权限原则
- 不要直接用 root,创建专用的运维账户
- 限制可执行的命令范围(部分 MCP Server 支持命令白名单)
- 如果不需要 sudo,显式禁用:
--disableSudo
2. 凭证管理
- 绝对不要将密码写入
.mcp.json并提交到 Git - 使用 SSH 密钥认证优于密码认证
- 通过环境变量传递敏感信息:
1
2
3claude mcp add ssh-server \
-e SSH_PASSWORD=$MY_SERVER_PASS \
npx -y @fangjunjie/ssh-mcp-server --host ...
3. 确认机制
Claude Code 默认会在执行工具前请求用户确认(除非设置了自动批准)。保留这个确认步骤,特别是对于:
- 修改系统配置
- 重启服务
- 删除文件
- 数据库变更
4. 网络隔离
- MCP Server 运行在你的本地机器上,通过 SSH 连接远程服务器
- SSH 凭证不会发送给 AI 模型
- 但执行的命令输出会返回给 AI,注意不要暴露敏感信息
与其他方案对比
| 方案 | 优点 | 缺点 |
|---|---|---|
| SSH MCP Server | 自然语言交互、AI 自主规划、上下文理解 | 需要信任 AI 的判断 |
| Ansible/Terraform | 声明式、可重复、版本控制 | 需要编写剧本/模板 |
| 手动 SSH | 完全控制 | 效率低、易出错 |
| Web 面板(宝塔等) | 图形界面友好 | 灵活性有限 |
SSH MCP Server 不是要替代 Ansible 或 Terraform,而是在日常运维中提供一个更高效的交互方式。适合:
- 一次性的诊断和修复
- 探索性的配置调整
- 不值得写自动化脚本的小任务
- 需要 AI 帮助分析和决策的复杂排查
总结
SSH MCP Server 让 AI 助手真正具备了”动手能力”——不再只是纸上谈兵告诉你该怎么做,而是直接帮你做。配合 Claude Code 的工具确认机制,你既能享受 AI 的效率,又保留了人类的最终决策权。
如果你有自己的服务器,强烈建议配置一个 SSH MCP Server 试试。你会发现,很多原本需要 10 分钟的运维操作,现在只需要一句话。
本文使用 Claude Code + SSH MCP Server 撰写和部署,全程通过 AI 直接操作服务器完成。