一、项目概述ssh-mcp-server是一个基于 SSH 的 Model Context Protocol (MCP) 服务端实现由开发者classfang方俊杰开源维护。它充当了 AI 助手与远程服务器之间的安全桥梁让支持 MCP 协议的客户端如 Claude Code、Cursor、Cline、CC Switch 等能够通过标准化接口执行远程 SSH 命令、上传/下载文件而无需将 SSH 凭据直接暴露给 AI 模型。核心定位credential 隔离 命令安全管控 标准化协议封装。项目地址classfang/ssh-mcp-server | NPM:fangjunjie/ssh-mcp-server二、核心特性特性说明安全连接支持密码认证、私钥认证含 passphrase、SSH Agent、双因素认证(2FA)️命令安全控制通过白名单/黑名单机制精确控制可执行命令范围防止误操作标准化接口完全兼容 MCP 协议规范无缝对接各类 MCP 客户端双传输模式exec模式默认支持文件传输与shell模式跳板机/堡垒机场景文件传输支持双向 SFTP 文件上传与下载凭据隔离SSH 凭据完全本地管理AI 模型无法直接接触即开即用通过 NPX 直接运行无需全局安装三、工具列表工具名功能描述execute-command在远程服务器上执行 SSH 命令并返回结果upload将本地文件上传至远程服务器指定路径download从远程服务器下载文件到本地指定路径list-servers列出所有已配置的 SSH 服务器连接四、CC Switch 中如何配置CC Switch 是一款开源的跨平台 AI CLI 统一管理工具支持 Claude Code、Codex、Gemini CLI、OpenCode、Cursor 等多种 AI 编程助手。它通过 SQLite 数据库集中管理 MCP 服务器配置支持 stdio、HTTP、SSE 三种传输类型并能实现多应用间的双向同步。在 CC Switch 中配置 ssh-mcp-server 时本质上是将 MCP 服务器的 stdio 配置写入其内部数据库然后由 CC Switch 代理转发给底层 AI 客户端。4.1 基础配置用户名密码基础配置示例适用于最常见的密码认证场景{command:npx,args:[-y,fangjunjie/ssh-mcp-server,--host,192.168.3.6,--port,22,--username,root,--password,root]}配置要点解析command:npx— 使用 Node.js 的包执行器无需全局安装-y— 自动确认安装避免交互式提示阻塞fangjunjie/ssh-mcp-server— 指定 NPM 包名每次运行自动拉取最新版本--host,--port,--username,--password— 标准 SSH 连接四元组⚠️ 关键格式每个参数和值必须是args数组中的独立元素禁止合并为--host 192.168.3.64.2 CC Switch 配置入口在 CC Switch 桌面应用中配置步骤如下打开 CC Switch → 点击“MCP”标签页点击“Add Server”或“添加服务器”选择传输类型为stdiossh-mcp-server 基于标准输入输出通信填写配置信息Name:ssh-mcp-server或自定义如homelab-serverCommand:npxArgs: 按上述 JSON 格式逐行填入参数启用该服务器并选择需要同步的 AI 客户端如 Claude Code、Cursor重启对应 AI 客户端使配置生效CC Switch 会自动将配置同步到各客户端的配置文件中如 Claude Code 的~/.claude/mcp.json或 Cursor 的.cursor/mcp.json无需手动编辑。五、进阶配置场景5.1 私钥认证推荐生产环境使用相比密码认证私钥认证更安全且支持 passphrase 保护{command:npx,args:[-y,fangjunjie/ssh-mcp-server,--host,192.168.3.6,--port,22,--username,root,--privateKey,~/.ssh/id_rsa,--passphrase,your_key_passphrase]}5.2 复用 ~/.ssh/config如果你已在~/.ssh/config中配置了主机别名可直接复用{command:npx,args:[-y,fangjunjie/ssh-mcp-server,--host,myserver]}对应的~/.ssh/configHost myserver HostName 192.168.3.6 Port 22 User root IdentityFile ~/.ssh/id_rsa5.3 命令白名单/黑名单安全加固强烈建议在生产环境中启用命令限制防止 AI 误执行危险操作白名单模式仅允许只读命令{command:npx,args:[-y,fangjunjie/ssh-mcp-server,--host,192.168.3.6,--port,22,--username,root,--password,root,--whitelist,^ls( .*)?,^cat .*,^df.*,^ps .*,^top.*]}黑名单模式禁止高危命令{command:npx,args:[-y,fangjunjie/ssh-mcp-server,--host,192.168.3.6,--port,22,--username,root,--password,root,--blacklist,^rm .*,^shutdown.*,^reboot.*,^mkfs.*,^dd .*]}规则说明白名单和黑名单均使用逗号分隔的正则表达式。若同时配置命令需同时通过两项检查先白名单后黑名单。5.4 跳板机/堡垒机shell 模式当目标服务器仅暴露交互式 Shell如堡垒机、网络设备时需切换为shell模式{command:npx,args:[-y,fangjunjie/ssh-mcp-server,--host,bastion.example.com,--port,22,--username,ops,--password,pwd123456,--transport-mode,shell,--shell-ready-timeout,15000]}模式差异exec默认支持execute-command、upload、downloadshell通过持久 Shell 会话执行命令不支持文件传输SFTP 不可用5.5 多服务器管理当需要同时管理多台服务器时推荐使用配置文件方式创建ssh-config.json[{name:homelab,host:192.168.3.6,port:22,username:root,password:root},{name:prod-web,host:10.0.0.5,port:22,username:deploy,privateKey:~/.ssh/prod_key,whitelist:^ls( .*)?,^cat .*,^systemctl .*}]CC Switch 配置{command:npx,args:[-y,fangjunjie/ssh-mcp-server,--config-file,/path/to/ssh-config.json]}使用时在 AI 对话中指定connectionName在 prod-web 上执行 df -h