SSH命令执行服务器

SSH MCP Server是一个本地模型上下文协议(MCP)服务器,通过SSH控制Linux和Windows系统,使LLM和其他MCP客户端能够安全地执行shell命令。

作者 By tufantunc
本地部署 SSH控制 远程命令执行
GitHub

SSH MCP服务器

SSH MCP服务器 是一个本地模型上下文协议(MCP)服务器,它为Linux和Windows系统公开SSH控制,使LLM和其他MCP客户端能够通过SSH安全地执行shell命令。

目录

  • 快速开始
  • 特性
  • 安装
  • 客户端设置
  • 测试
  • 免责声明
  • 支持

快速开始

  • 安装 SSH MCP服务器
  • 配置 SSH MCP服务器
  • 设置 您的MCP客户端(例如克劳德桌面、光标等)
  • 通过自然语言在Linux或Windows服务器上执行远程shell命令

特性

  • 符合MCP标准的服务器暴露SSH功能
  • 在远程Linux和Windows系统上执行shell命令
  • 通过密码或SSH密钥进行安全身份验证
  • 使用TypeScript和官方MCP SDK构建
  • 可配置的超时保护 自动堕胎
  • 优雅的超时处理 -试图在关闭连接之前终止挂起的进程

工具

  • exec:在远程服务器上执行shell命令

  • 参数:

  • command (必需):在远程SSH服务器上执行的Shell命令

  • description (可选):此命令将执行的操作的可选描述(作为注释附加)

  • 超时配置:

  • sudo-exec:使用sudo权限执行shell命令

  • 参数:

  • command (必需):使用sudo以root身份执行Shell命令

  • description (可选):此命令将执行的操作的可选描述(作为注释附加)

  • 笔记:

  • 需要 --sudoPassword 设置为密码保护的sudo

  • 通过以下方式可以禁用 --disableSudo 如果不需要或无法使用sudo访问,则在启动时标记

  • 对于持久根访问,请考虑使用 --suPassword 相反,它建立了一个根shell

  • 如果服务器以启动,则工具将完全不可用 --disableSudo

  • 超时配置:

  • 超时是通过命令行参数配置的 --timeout (以毫秒为单位)

  • 默认超时:60000ms(1分钟)

  • 当命令超时时,服务器会在关闭连接之前自动尝试中止正在运行的进程

  • 最大命令长度配置:

  • 通过配置最大命令字符数 --maxChars

  • 违约: 1000

  • 无限制模式:设置 --maxChars=none 或任何 <= 0 价值(例如。 --maxChars=0)

安装

  1. 克隆存储库:

BASH``` 1 2git clone https://github.com/tufantunc/ssh-mcp.git cd ssh-mcp

2. **安装依赖项:**

BASH```
1npm install

客户端设置

您可以配置您的IDE或LLM,如Cursor、Windsurf、Claude Desktop,以使用此MCP服务器。

所需参数:

  • host:Linux或Windows服务器的主机名或IP
  • user:SSH用户名

可选参数:

  • port:SSH端口(默认值:22)
  • password:SSH密码(或使用 key 用于基于密钥的身份验证)
  • key:私有SSH密钥的路径
  • sudoPassword:sudo提升密码(使用sudo执行命令时)
  • suPassword:su提升的密码(当您需要持久根shell时)
  • timeout:命令执行超时(毫秒)(默认值:60000ms=1分钟)
  • maxChars:允许的最大字符数 command 输入(默认值:1000)。使用 none0 禁用限制。
  • disableSudo:标记以禁用 sudo-exec 工具完全。当不需要或无法使用sudo访问时很有用。

COMMANDLINE``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19{ “mcpServers”: { “ssh-mcp”: { “command”: “npx”, “args”: [ “ssh-mcp”, “-y”, ”—”, “—host=1.2.3.4”, “—port=22”, “—user=root”, “—password=pass”, “—key=path/to/key”, “—timeout=30000”, “—maxChars=none” ] } } }


### 克劳德代码


您可以使用以下命令将此MCP服务器添加到Claude代码中 `claude mcp add` 命令。这是Claude Code的推荐方法。


**基本安装:**


BASH```
1claude mcp add --transport stdio ssh-mcp -- npx -y ssh-mcp -- --host=YOUR_HOST --user=YOUR_USER --password=YOUR_PASSWORD

安装示例:

使用密码验证:

BASH``` 1claude mcp add —transport stdio ssh-mcp — npx -y ssh-mcp — —host=192.168.1.100 —port=22 —user=admin —password=your_password


**使用SSH密钥身份验证:**


BASH```
1claude mcp add --transport stdio ssh-mcp -- npx -y ssh-mcp -- --host=example.com --user=root --key=/path/to/private/key

具有自定义超时和无字符限制:

BASH``` 1claude mcp add —transport stdio ssh-mcp — npx -y ssh-mcp — —host=192.168.1.100 —user=admin —password=your_password —timeout=120000 —maxChars=none


**在Sudo和Su的支持下:**


BASH```
1claude mcp add --transport stdio ssh-mcp -- npx -y ssh-mcp -- --host=192.168.1.100 --user=admin --password=your_password --sudoPassword=sudo_pass --suPassword=root_pass

安装范围:

您可以在添加服务器时指定范围:

  • 局部作用域 (默认):供当前项目中的个人使用

BASH``` 1claude mcp add —transport stdio ssh-mcp —scope local — npx -y ssh-mcp — —host=YOUR_HOST —user=YOUR_USER —password=YOUR_PASSWORD

- **项目范围**:通过以下方式与您的团队分享 `.mcp.json` 文件


BASH```
1claude mcp add --transport stdio ssh-mcp --scope project -- npx -y ssh-mcp -- --host=YOUR_HOST --user=YOUR_USER --password=YOUR_PASSWORD
  • 用户范围:适用于您的所有项目

BASH``` 1claude mcp add —transport stdio ssh-mcp —scope user — npx -y ssh-mcp — —host=YOUR_HOST —user=YOUR_USER —password=YOUR_PASSWORD



**验证安装:**


添加服务器后,重新启动Claude Code并要求Cascade执行以下命令:

1”Can you run ‘ls -la’ on the remote server?”


有关Claude Code中MCP的更多信息,请参阅 [官方文档](https://docs.claude.com/en/docs/claude-code/mcp).


## 测试


您可以使用 [MCP检查员](https://modelcontextprotocol.io/docs/tools/inspector) 用于此MCP服务器的可视化调试。


SH```
1npm run inspect

免责声明

SSH MCP服务器根据 MIT许可证.使用风险自负。该项目不隶属于任何SSH或MCP提供商,也不受其认可。

贡献

我们欢迎捐款!请查看我们的 贡献指南 了解更多信息。

行为准则

该项目遵循 行为准则 确保为每个人提供一个温馨的环境。

支持

如果你觉得SSH MCP Server很有帮助,可以考虑在存储库中担任主角或做出贡献!欢迎拉取请求和反馈。