资讯动态

一个MCP服务器管理多台主机:ssh-mcp-server多连接配置的4种方式

发布时间:2026/10/23 4:47:45 来源:尧图企业网站定制
【免费下载链接】ssh-mcp-server基于 SSH 的 MCP 服务 ‍♀️。已被MCP官方收录 。 SSH MCP Server ‍♀️. It has been included in the community MCP repository .项目地址https://gitcode.com/gh_mirrors/ss/ssh-mcp-server点击查看免费下载ssh-mcp-server 是一个基于 SSH 的 MCP 服务器可以让支持 MCP 协议的 AI 助手通过标准化接口远程执行 SSH 命令、传输文件。如果你同时维护开发机、测试机、生产机或多台堡垒机不需要为每台主机单独起一个服务——一个 ssh-mcp-server 实例就能管理多台主机通过「命名连接」区分目标调用时再用connectionName参数指定。本文带你快速掌握多连接配置的 4 种方式从最简单的写法到复用~/.ssh/config的高级玩法。为什么一个服务器就能管多台主机单主机模式下--host只写一个地址连接名默认是default。而多连接模式下每个连接都有独立的名称如dev、prod各自持有独立的 host、端口、认证方式和超时策略由连接管理器统一维护核心实现在 ssh-connection-manager.ts。配置好之后可以先调用list-servers工具确认所有连接及其状态实现在 list-servers.ts[ { name: dev, host: 1.2.3.4, port: 22, username: alice }, { name: prod, host: 5.6.7.8, port: 22, username: bob } ]方式一JSON 配置文件推荐的多主机配置方法这是官方推荐的方式把多台主机的连接参数写进一个 JSON 文件例如ssh-config.json再用--config-file参数加载。连接支持对象格式推荐直观和数组格式每台主机一个条目{ dev: { host: 1.2.3.4, port: 22, username: alice, password: xxx }, prod: { host: 5.6.7.8, port: 22, username: bob, privateKey: /path/to/private/key } }每个连接都可以独立配置transportMode、commandTimeoutMs、maxOutputBytes、socksProxy、tryKeyboard等高级字段互不影响。MCP 客户端配置随之变得非常简洁{ mcpServers: { ssh-mcp-server: { command: npx, args: [ -y, fangjunjie/ssh-mcp-server, --config-file, /path/to/ssh-config.json ] } } } 注意配置里每个参数和它的值必须是args数组中独立的两个元素不要写成--config-file /path/to/ssh-config.json。方式二--ssh 参数直接传 JSON 配置不想单独维护一个配置文件可以重复使用--ssh参数每次都传一段 JSON 配置字符串npx -y fangjunjie/ssh-mcp-server \ --ssh {name:dev,host:1.2.3.4,port:22,username:alice,password:xxx} \ --ssh {name:prod,host:5.6.7.8,port:22,username:bob,password:yyy}✅ 优点配置集中写在 mcp.json 里换机器不用同步额外的配置文件。 ✅ JSON 格式天然支持密码中的特殊字符、,、{等比旧格式更可靠。方式三旧式逗号分隔格式向后兼容早期版本使用keyvalue,keyvalue的逗号分隔写法目前仍然兼容npx -y fangjunjie/ssh-mcp-server \ --ssh namedev,host1.2.3.4,port22,useralice,passwordxxx \ --ssh nameprod,host5.6.7.8,port22,userbob,passwordyyy⚠️ 注意当密码包含、,、{、}等特殊字符时这种格式可能解析出错。遇到这种情况请改用方式一或方式二。新项目建议直接跳过此方式。方式四--host 逗号分隔多主机复用 ~/.ssh/config如果多台主机都已经写进了你本机的~/.ssh/configSSH 别名这是最省事的写法——--host支持逗号分隔多个别名直接进入多连接模式无需编写任何 JSONargs: [ -y, fangjunjie/ssh-mcp-server, --host, myserver,anotherserver ]连接名就是主机值本身myserver、anotherserver别名会被自动展开为 HostName/Port/User/IdentityFile解析逻辑见 ssh-config-parser.ts如果不额外提供--password/--privateKey等认证参数每个别名独立从 SSH config 解析认证信息互不干扰--pty、--whitelist、超时等策略参数作为进程级默认值共享给全部主机适合「SSH config 里配好了一切MCP 这边零 JSON」的场景。4 种方式怎么选一张表看懂方式关键参数适用场景一、配置文件 ⭐--config-file主机较多、需要每台独立策略超时/代理/2FA最灵活二、--ssh JSON--ssh {name:...}× N不想维护额外文件配置直接进 mcp.json三、旧式逗号分隔--ssh name...,host...兼容旧配置密码有特殊字符时避免使用四、--host 多值--host a,b多台主机都已在~/.ssh/config配好零 JSON用 connectionName 指定目标主机配置完成后所有 MCP 工具execute-command、upload、download、read-file等参数定义可参考 execute-command.ts都支持connectionName参数来路由到指定连接不指定时走默认连接{ tool: execute-command, params: { cmdString: uptime, connectionName: prod } }让 AI 助手「在 prod 上看下磁盘空间」「把文件上传到 dev」这类指令就能精确落到对应主机上。安全与实践建议️建议配置命令白名单多主机尤其生产机建议用--whitelist限制可执行命令范围凭据留在本地私钥只填文件路径、密码只存在本地配置文件中ssh-mcp-server 不会把凭据暴露给 AI 模型交互配置支持 skill 的 AI 助手可安装仓库内置的 ssh-mcp-helper 技能通过问答自动生成上述任一方式的配置完整文档更多参数代理、2FA、堡垒机 shell 模式等详见 README.md 的「多 SSH 连接配置」章节一句话总结主机少且已配好 SSH config用方式四最爽主机多、策略杂直接上方式一的--config-file其余两种按需取用。赞分享【免费下载链接】ssh-mcp-server基于 SSH 的 MCP 服务 ‍♀️。已被MCP官方收录 。 SSH MCP Server ‍♀️. It has been included in the community MCP repository .项目地址https://gitcode.com/gh_mirrors/ss/ssh-mcp-server点击查看免费下载相关推荐MCP Python SDK 的 ClientSessionGroup一站式聚合管理多台 MCP 服务器连接MCP Python SDK 的 ClientSessionGroup一站式聚合管理多台 MCP 服务器连接 Client 一次只能连接一台 MCP 服务器人工智能MCP 服务MCP Clients工具调用python-sdk 多服务器聚合指南用 ClientSessionGroup 统一管理多个 MCP 连接python sdk 多服务器聚合指南用 ClientSessionGroup 统一管理多个 MCP 连接 ClientSessionGroup 是 pyth人工智能MCP 服务MCP Clients工具调用python-sdk 中的 ClientSessionGroup用一组对象聚合管理多个 MCP Server 连接python sdk 中的 ClientSessionGroup用一组对象聚合管理多个 MCP Server 连接 导读 单个 Client 只能连接一台 M人工智能MCP 服务MCP Clients工具调用上一篇DeepSeek-VL视觉语言模型三步实战指南从安装到图像对话下一篇Easy-Vibe 计算机基础系列数据结构导论——从四大分类到复杂度分析与选型实战创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑