跳转到主要内容
返回 MCP Server 列表
ssh-mcp-server 图标

ssh-mcp-server

让 AI 通过 SSH 安全操作远程服务器的 MCP Server——凭证本地管理,不暴露给模型

dev-toolsssh远程运维SFTP
场景示例
  • 「看看生产机最近 10 分钟的 nginx 错误日志」——AI 直接 SSH 执行并分析结果
  • 「把这个构建产物传到测试机 /opt/app 并重启服务」——upload + execute-command 一条龙
  • 「巡检这三台机器的磁盘和内存占用」——多连接配置下逐台执行、汇总
  • 「把远程的崩溃日志拉下来帮我定位」——download 后 AI 本地深入分析
使用注意

AI 可能因幻觉执行破坏性命令(误删文件、错杀进程、重启服务),生产环境务必加防护:

  • 白名单只放行需要的命令:--whitelist "^ls( .*)?,^cat .*,^df.*"
  • 黑名单拦截高危操作:--blacklist "^rm .*,^shutdown.*,^reboot.*"
  • --allowed-remote-paths 限制 SFTP 可达路径
  • 先在测试机试用,再接生产

提供的工具

工具说明
execute-command在远程服务器执行命令并返回结果
upload / download本地与远程双向文件传输(SFTP)
list-servers列出已配置的 SSH 连接

认证方式

  • 密码:--password;私钥:--privateKey ~/.ssh/id_rsa(可加 --passphrase)
  • 复用 ~/.ssh/config:只传 --host 别名 即可,命令行参数优先级更高
  • 2FA / MFA:--try-keyboard + 环境变量 SSH_MCP_2FA_CODE

安全防护配置

生产环境接入前,用三层防护锁住 AI 的操作范围:

1. 命令白名单 / 黑名单(逗号分隔的正则,匹配整条命令):白名单只放行匹配的命令(推荐只放只读命令),黑名单在其之外兜底拦截高危操作,两者可叠加——安装命令里已带一份保守默认,按需增删。

2. SFTP 路径限制:--allowed-remote-paths "/var/log,/opt/app" 把远程可达路径锁定在业务目录,防提示注入读写 ~/.ssh/authorized_keys 等敏感文件;本地侧对应 --allowed-local-paths。

3. 灰度上线:先在测试机以白名单模式试运行,观察 AI 实际发出的命令样式,确认无误再逐步接入生产。

高级用法:改「服务器命令」这半截

安装 tab 里各客户端的命令遵循同一个结构:客户端前缀 + 服务器命令(如 claude mcp add ssh-mcp-server -- <服务器命令>)。要换用法时,只改 <服务器命令> 部分,前缀原样保留,任何客户端通用。

配置文件模式(多服务器推荐)——先写 ssh-config.json:

json
[
  { "name": "dev", "host": "1.2.3.4", "port": 22, "username": "alice", "password": "xxx" },
  { "name": "bastion", "host": "9.9.9.9", "port": 22, "username": "ops", "password": "yyy", "transportMode": "shell" }
]

服务器命令换成:

bash
npx -y @fangjunjie/ssh-mcp-server --config-file ./ssh-config.json

对话中通过 connectionName 指定目标机器(如「在 prod 上看下磁盘」),省略时用默认连接。密码含 = , { } 等特殊字符时务必用配置文件方式,命令行旧格式会解析出错。