README
🚀 🔐 SSH-MCP-Server 中文文档
ssh-mcp-server 是一款桥梁工具,它能让 AI 助手及其他支持 MCP 协议的应用程序,借助标准化接口远程执行 SSH 命令。这一特性使得 AI 助手在不直接暴露 SSH 凭证的情况下,能安全地操作远程服务器、执行命令并获取结果。
🚀 快速开始
借助 ssh-mcp-server,你可以让 AI 助手和支持 MCP 协议的应用程序,通过标准化接口远程执行 SSH 命令,同时保障 SSH 凭证的安全。
✨ 主要特性
- 🔒 安全连接:支持多种安全的 SSH 连接方式,涵盖密码认证和私钥认证(带有密钥短语支持)。
- 🛡️ 命令安全控制:通过灵活的黑名单和白名单机制,精确控制允许执行的命令范围,防止危险操作。
- 🔄 标准化接口:符合 MCP 协议规范,可与支持该协议的 AI 助手实现无缝集成。
- 📂 文件传输:支持双向文件传输,既可以将本地文件上传到服务器,也能从服务器下载文件。
- 🔑 凭证隔离:SSH 凭证完全由本地管理,不会暴露给 AI 模型,增强了安全性。
- 🚀 即用即取:无需全局安装,直接使用 NPX 运行即可快速部署。
📦 安装指南
本项目无需全局安装,直接使用 NPX 运行即可快速部署。
📦 开源仓库
- GitHub: https://github.com/classfang/ssh-mcp-server
- NPM: https://www.npmjs.com/package/@fangjunjie/ssh-mcp-server
🛠️ 工具列表
| 工具 | 名称 | 描述 | |---------|-----------|----------| | execute-command | 命令执行工具 | 在远程服务器上执行 SSH 命令并获取结果 | | upload | 文件上传工具 | 将本地文件上传到指定的远程服务器位置 | | download | 文件下载工具 | 从远程服务器下载文件到本地指定位置 |
💻 使用示例
MCP 配置示例
命令行选项
以下是可通过命令行指定的关键参数:
--host或-h:SSH 服务端的主机地址(默认值为localhost)--port或-p:SSH 服务端的端口号(默认值为22)--user或-u:SSH 连接的用户名--password或-P:SSH 连接的密码(不推荐使用,建议优先配置密钥认证)--private-key或-k:用于 SSH 认证的私钥路径--passphrase或-w:私钥的密钥短语--command-whitelist或-w:允许执行的命令白名单(支持正则表达式)--command-blacklist或-b:禁止执行的命令黑名单(支持正则表达式)
配置示例
基础用法
以下是使用密码认证的配置示例:
{
"command": "npx",
"args": [
"--host",
"192.168.1.100",
"--port",
"22",
"--user",
"root",
"--password",
"your_password_here"
]
}
高级用法
以下是使用私钥认证、命令白名单、命令黑名单的配置示例:
使用私钥认证的配置示例
{
"command": "npx",
"args": [
"--host",
"192.168.1.100",
"--port",
"22",
"--user",
"root",
"--private-key",
"/path/to/private_key.pem",
"--passphrase",
"your_passphrase_here"
]
}
使用命令白名单的配置示例
{
"command": "npx",
"args": [
"--host",
"192.168.1.100",
"--port",
"22",
"--user",
"root",
"--password",
"your_password_here",
"--command-whitelist",
"^ls$|^pwd$"
]
}
使用命令黑名单的配置示例
{
"command": "npx",
"args": [
"--host",
"192.168.1.100",
"--port",
"22",
"--user",
"root",
"--password",
"your_password_here",
"--command-blacklist",
"^rm .*"
]
}
⚠️ 重要提示
如果同时指定白名单和黑名单,系统将首先检查命令是否在白名单中,然后检查是否在黑名单中。只有通过两者的检查,命令才会被执行。
微信扫一扫