你是否曾经希望AI能够通过SSH安全地连接远程服务器,执行命令、上传下载文件、管理目录?今天要介绍的开源项目MCP SSH服务器,正是为了实现这个目标而设计的。它是一个针对MCP的安全SSH服务器实现,支持远程命令执行和文件操作,同时支持基于密码和密钥的身份验证。

项目基本信息

信息项详情
项目名称MCP SSH服务器
GitHub地址https://github.com/shaike1/mcp-server-ssh
项目描述针对模型上下文协议的安全SSH服务器实现, enables远程命令执行和文件操作,同时支持基于密码和密钥的身份验证。
作者shaike1
开源协议MIT License
开源状态公开状态
LanguagesTypeScript
支持平台Windows / macOS / Linux
最后更新2026-04-23

一、项目介绍

MCP SSH服务器是一个让AI能够通过SSH协议安全连接远程服务器的MCP工具。它支持密码和密钥两种认证方式,提供远程命令执行、文件上传下载、目录操作等功能。

这个服务器提供了以下核心功能:

  • SSH连接管理:支持密码和密钥认证
  • 远程命令执行:在远程服务器上执行命令
  • 文件操作:上传和下载文件
  • 目录操作:列出目录内容
  • 批量文件传输:支持批量文件操作
  • 进度跟踪:文件传输进度跟踪

二、核心优势

安全连接

支持SSH协议,提供安全的远程访问。

双认证方式

支持密码认证和密钥认证,灵活选择。

文件操作完整

支持文件上传、下载、目录列表等操作。

命令执行

在远程服务器上执行任意命令。

详细日志

提供详细的连接和操作日志。

三、适用场景

远程服务器管理

让AI通过SSH管理远程服务器,执行运维命令。

自动化部署

AI可以自动上传文件、执行部署脚本。

文件同步

自动同步本地和远程文件。

批量操作

在多个服务器上批量执行命令。

四、安装教程

系统要求

工具用途下载/安装方式
Node.js运行环境[https://nodejs.org/] (版本要求:18.0 或以上)
SSH服务器远程目标已有SSH服务
MCP客户端如Claude Desktop等根据客户端官网下载

安装步骤

第一步:安装软件包

npm install mcp-ssh

第二步:配置Claude Desktop

找到配置文件:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json

添加配置:

{
  "mcpServers": {
    "ssh": {
      "command": "node",
      "args": ["%APPDATA%/npm/node_modules/mcp-ssh/dist/server.js"],
      "env": {
        "SSH_PORT": "8889",
        "SSH_LOG_LEVEL": "info"
      }
    }
  }
}

第三步:重启Claude Desktop

保存配置后,重启Claude Desktop。

五、使用示例

示例1:密码认证连接

$body = @{
    id = "test"
    host = "example.com"
    port = 22
    username = "user"
    password = "pass123"
} | ConvertTo-Json

Invoke-RestMethod -Uri "http://localhost:8889/connect" -Method Post -Body $body -ContentType "application/json"

示例2:密钥认证连接

$body = @{
    id = "test"
    host = "example.com"
    port = 22
    username = "user"
    privateKey = Get-Content ~/.ssh/id_rsa | Out-String
    passphrase = "optional-key-passphrase"
} | ConvertTo-Json

Invoke-RestMethod -Uri "http://localhost:8889/connect" -Method Post -Body $body -ContentType "application/json"

示例3:执行命令

$execBody = @{
    id = "test"
    command = "ls -la"
} | ConvertTo-Json

Invoke-RestMethod -Uri "http://localhost:8889/exec" -Method Post -Body $execBody -ContentType "application/json"

示例4:上传文件

$uploadForm = @{
    file = Get-Item -Path "localfile.txt"
    remotePath = "/remote/path/file.txt"
}
Invoke-RestMethod -Uri "http://localhost:8889/upload/test" -Method Post -Form $uploadForm

示例5:下载文件

Invoke-RestMethod -Uri "http://localhost:8889/download/test?remotePath=/remote/path/file.txt" -Method Get -OutFile "downloaded.txt"

示例6:列出目录

Invoke-RestMethod -Uri "http://localhost:8889/ls/test?path=/remote/path" -Method Get

示例7:获取连接状态

Invoke-RestMethod -Uri "http://localhost:8889/status/test" -Method Get

六、开发指南

克隆仓库并构建

git clone https://github.com/shaike1/mcp-server-ssh.git
cd mcp-server-ssh
npm install
npm run build
npm start

环境变量

变量默认值描述
SSH_PORT8889服务器端口
SSH_LOG_LEVELinfo日志级别

七、常见问题

问题1:连接失败

解决方案:检查主机地址、端口、用户名和密码/密钥是否正确。

问题2:密钥认证失败

解决方案:确认私钥路径正确,如果有密码短语需要提供。

问题3:文件上传失败

解决方案:检查远程路径是否有写入权限。

问题4:命令执行超时

解决方案:检查网络连接,减少命令复杂度。

问题5:端口被占用

解决方案:修改SSH_PORT环境变量使用其他端口。

八、总结

MCP SSH服务器是一个让AI能够通过SSH安全连接远程服务器的MCP工具,提供了命令执行和文件操作功能。

这个项目的最大价值在于:

  1. 安全连接:基于SSH协议,支持密码和密钥认证
  2. 功能完整:命令执行、文件上传下载、目录操作
  3. 批量传输:支持批量文件操作
  4. 进度跟踪:文件传输进度可见
  5. MIT许可证:可自由使用和修改

如果你需要让AI通过SSH管理远程服务器,MCP SSH服务器是一个非常实用的工具。

标签: 开发者工具

已有 34 条评论

    1. FionaFind FionaFind

      命令执行可以在远程服务器运行脚本。

    2. GeorgeGet GeorgeGet

      需要配置SSH_PORT环境变量。

    3. HannahHelp HannahHelp

      密钥认证支持密码短语。

    4. IrisIdea IrisIdea

      连接状态可以随时查询。

    5. JackJump JackJump

      文件传输有进度跟踪。