Token导航 LogoToken导航TokenDH.com
Remote MCP SSH Gateway logo
AI代理stdio官方级别未说明来源级核验

Remote MCP SSH Gateway

MCP Server

MCP Server SSH Client是一个通过SSH连接到远程MCP服务器的客户端工具,提供安全的MCP通信通道,支持密钥认证和远程MCP工具访问。

工具数

0

提示词数

0

GitHub Stars

9

资源数

0
PythonClaudeAI代理Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Machine-To-Machine

提供方

Machine-To-Machine

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install m2m-mcp-server-ssh-client

详细介绍

MCP服务器SSH客户端

](https://pypi.org/project/m2m-mcp-server-ssh-client/) ](https://pypi.org/project/m2m-mcp-server-ssh-client/) ![License: MIT](https://opensource.org/licenses/MIT)

一个通过SSH连接到远程MCP服务器的模型上下文协议服务器(远程SSH客户端)。此客户端能够访问并利用托管在远程服务器上的MCP工具,为MCP通信提供一个安全的通道。

特性

  • 通过SSH连接到任意MCP服务器
  • 通过安全的SSH通道代理所有MCP协议命令
  • 基于密钥的身份验证支持
  • 支持MCP功能,包括工具、提示和资源

安装

uv 管理的Python项目,通过以下方式添加到依赖项中:

uv add m2m-mcp-server-ssh-client

或者,对于使用 pip 对于依赖项:

pip install m2m-mcp-server-ssh-client

要直接从源代码安装:

git clone https://github.com/Machine-To-Machine/m2m-mcp-server-ssh-client.git
cd m2m-mcp-server-ssh-client
pip install -e .

要在您的项目中运行服务器:

uv run m2m-mcp-server-ssh-client

常见用例

快速入门:使用演示服务器

我们维护了一个公开的演示服务器,其中已配置了各种MCP工具,随时可供使用。(该服务器将在我们发布开放、去中心化的注册表之前一直可用。)

这个演示服务器包含多个MCP服务器,包括HackerNews、MLB Stats API和Formula 1 API工具,供您进行实验。

克劳德

要将Claude连接到此服务器,只需在Claude桌面设置中添加以下内容。

"mcpServers": {
  "remote-mcp-tools": {
    "command": "uvx",
    "args": [
      "m2m-mcp-server-ssh-client", 
      "--host", "mcp-beta.machinetomachine.ai", 
      "--port", "8022", 
      "--use-key-server"
    ]
  }
}

命令行

# Connect to the M2M public demo server with automatic key exchange
uv run m2m-mcp-server-ssh-client --host mcp-beta.machinetomachine.ai --use-key-server

2. 本地开发测试

如需设置自己的SSH服务器,请参考 m2m-mcp-server-ssh-server根据上面的信息,执行如下指令:

使用您自己的MCP工具进行本地测试:

# Connect to a local MCP SSH server
uv run m2m-mcp-server-ssh-client

上述命令将尝试连接到在端口8022上监听的本地SSH服务器。

在本地测试时,您可以使用密钥服务器来简化密钥交换:

# Use the key server for automatic key management (if server has --run-key-server enabled)
uv run m2m-mcp-server-ssh-client --use-key-server

上述命令将尝试使用在8000端口上运行的密钥服务器。

3. 远程服务器连接

连接到您自己托管的MCP服务器:

# Using existing SSH keys
uv run m2m-mcp-server-ssh-client --host your-server.example.com --client-key ~/.ssh/your_key --known-hosts ~/.ssh/known_hosts

你可以在远程服务器上运行密钥服务器并在客户端进行配置,从而简化密钥交换过程。

与AI平台的使用

Claude 桌面集成

添加到Claude Desktop设置中:

"mcpServers": {
  "remote-mcp-tools": {
    "command": "uvx",
    "args": [
      "m2m-mcp-server-ssh-client", 
      "--host", "mcp-beta.machinetomachine.ai", 
      "--port", "8022", 
      "--use-key-server"
    ]
  }
}

MCP 检查器

用于调试或探索可用工具:

npx @modelcontextprotocol/inspector -- uvx m2m-mcp-server-ssh-client --host mcp-beta.machinetomachine.ai --port 8022 --use-key-server

用法

命令行选项

  • --host远程SSH服务器主机(默认:“localhost”)
  • --port远程SSH服务器端口(默认:8022)
  • --usernameSSH用户名(默认:“mcp”)
  • --client-key客户端私钥文件(默认:“~/.ssh/m2m_mcp_server_ssh_client”)
  • --known-hosts已知主机文件的路径(默认:“~/.ssh/known_hosts”)
  • --passphrase私钥的密码短语(默认:无)
  • --disable-host-key-checking跳过服务器签名验证(默认:False)
  • --log-level设置日志级别(默认:INFO)

详细示例

与远程服务器的基本连接

连接到运行在端口8022上的远程MCP服务器(SSH服务器):

uvx m2m-mcp-server-ssh-client --host mcp.example.com

使用自定义SSH密钥

为认证指定一个特定的SSH密钥:

uvx m2m-mcp-server-ssh-client --host mcp.example.com --client-key ~/.ssh/mcp_custom_key

如果你的密钥受密码短语保护:

uvx m2m-mcp-server-ssh-client --host mcp.example.com --client-key ~/.ssh/mcp_custom_key --passphrase "your-passphrase"

调试模式用于故障排除

启用详细日志记录以解决连接问题:

uvx m2m-mcp-server-ssh-client --host mcp.example.com --log-level DEBUG

密钥服务器集成

MCP SSH客户端可以使用密钥服务器进行动态密钥交换和验证:

uvx m2m-mcp-server-ssh-client --host mcp.example.com --use-key-server

当使用密钥服务器时:

  1. 客户端从服务器获取公钥 http://host:key-server-port/server_pub_key
  2. 客户端在向服务器注册其公钥时 http://host:key-server-port/register
  3. 一个临时的 known_hosts 文件已为SSH连接创建

此功能与 --known-hosts--disable-host-key-checking根据上面的信息,执行如下指令:

禁用主机密钥检查

安全警告使用 --disable-host-key-checking 使您的连接容易受到中间人攻击。仅在受信任的网络或用于开发/测试目的时使用此选项。
uvx m2m-mcp-server-ssh-client --host localhost --disable-host-key-checking

为Claude桌面版进行配置

添加到您的Claude设置中:

"mcpServers": {
  "remote-servers": {
    "command": "uvx",
    "args": [
      "m2m-mcp-server-ssh-client", 
      "--host", "example.com", 
      "--port", "8022", 
      "--username", "mcp"
    ]
  }
}

对于使用特定密钥的更安全配置:

"mcpServers": {
  "remote-servers": {
    "command": "uvx",
    "args": [
      "m2m-mcp-server-ssh-client",
      "--host", "mcp-server.example.com",
      "--port", "8022",
      "--username", "claude-mcp",
      "--client-key", "~/.ssh/claude_mcp_key",
      "--known-hosts", "~/.ssh/mcp_remote_server"
    ]
  }
}

工作原理

MCP服务器SSH客户端建立与运行MCP工具SSH服务器的远程服务器之间的SSH连接,即。, m2m-mcp-server-ssh-server然后它:

  1. 创建一个本地代理服务器,该服务器具有与远程MCP服务器相同的功能
  2. 通过SSH连接将所有MCP请求转发到远程服务器
  3. 将远程服务器的响应返回给本地客户端

这允许您像使用本地安装的工具一样使用运行在远程机器上的工具。

认证流程

%%{init: {'theme':'default', 'themeVariables': { 'primaryColor': '#5D8AA8', 'primaryTextColor': '#fff', 'primaryBorderColor': '#1F456E', 'lineColor': '#5D8AA8', 'secondaryColor': '#006400', 'tertiaryColor': '#fff' }}}%%

sequenceDiagram
    participant Host as MCP Host
(Claude/Cursor)
    participant Client as MCP SSH Client
    participant KeySrv as Key Server
(HTTP API)
    participant SSHSrv as MCP SSH Server
    participant MCP as MCP Servers

    Note over Client,SSHSrv: Initial Key Exchange & Authentication
    
    Client->>Client: Generate SSH key pair
if does not exist
    Client->>KeySrv: GET /server_pub_key
    KeySrv->>Client: Return server's public key
    Client->>Client: Store server key in
temporary known_hosts
    Client->>KeySrv: POST /register
{client_pub_key: "ssh-ed25519 AAAA..."}
    KeySrv->>SSHSrv: Store client public key
in authorized keys
    KeySrv->>Client: {status: "success"}
    
    Note over Client,SSHSrv: Secure SSH Connection
    
    Client->>SSHSrv: SSH handshake with
client key authentication
    SSHSrv->>SSHSrv: Verify client key
against authorized keys
    SSHSrv->>Client: Authentication successful
    
    Note over Client,SSHSrv: MCP Communication
    
    Host->>Client: JSONRPC request
    Client->>SSHSrv: Forward request
over SSH tunnel
    SSHSrv->>MCP: Route request to
appropriate MCP server
    MCP->>SSHSrv: Process and return results
    SSHSrv->>Client: Send response over SSH
    Client->>Host: Return JSONRPC response
    
    Note over Client,SSHSrv: Session Management
    
    alt Session Termination
        Host->>Client: Close connection
        Client->>SSHSrv: Terminate SSH session
        SSHSrv->>SSHSrv: Clean up resources
    end

安全考虑

  • 在生产环境中始终使用主机密钥验证
  • 使用带密码短语保护的SSH密钥以增强安全性
  • 考虑为MCP连接使用专用SSH密钥
  • 为您的SSH密钥文件设置适当的权限(600)
  • 在远程服务器上使用一个专用的、权限受限的用户

排查常见问题

连接被拒绝

Error running MCP SSH client: [Errno 111] Connection refused

解决方案验证主机和端口是否正确,以及SSH服务是否正在运行。

认证失败

Error running MCP SSH client: Authentication failed

解决方案检查密钥文件路径。确保远程服务器已安装您的公钥。

主机密钥验证失败

Error running MCP SSH client: Host key verification failed

解决方案请将主机密钥添加到您的known_hosts文件中,或者使用 --disable-host-key-checking (仅用于测试)。

依赖项

  • anyio(>=4.5.0)
  • asyncssh (>=2.20.0)
  • mcp(>=1.1.3)
  • pydantic(>=2.0.0)

开发

设置开发环境

git clone https://github.com/Machine-To-Machine/m2m-mcp-server-ssh-client.git
cd m2m-mcp-server-ssh-client
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv pip install -e ".[dev]"

代码质量

# Run linting
uv run ruff check .

# Run formatting check
uv run ruff format --check .

# Run security checks
uv run bandit -r src/

调试

你可以使用MCP检查器来调试客户端:

npx @modelcontextprotocol/inspector uvx m2m-mcp-server-ssh-client --host example.com

对于高级调试,请使用以下工作流程:

  1. 使用以下命令启动客户端 --log-level DEBUG
  2. 检查SSH连接参数和握手过程
  3. 如果使用自定义密钥,请验证路径和权限是否正确
  4. ssh -v 首先直接测试基本连接性

贡献

我们欢迎贡献,以帮助扩展和完善 m2m-mcp-server-ssh-client无论您是想添加新功能、增强现有功能,还是改进文档,您的意见都很宝贵。

欢迎提交拉取请求!请随时贡献新想法、修复错误或进行增强。

贡献指南

  1. 克隆该存储库
  2. 创建一个特性分支: git checkout -b feature-name
  3. 提交您的更改: git commit -am 'Add some feature'
  4. 推送到分支: git push origin feature-name
  5. 提交拉取请求

许可证

麻省理工学院许可证 - 详情请见LICENSE文件。

作者

  • 机器对机器

目录标签

目录标签

PythonClaudeAI代理SSH客户端本地部署远程连接安全通信MCP协议密钥认证

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosessionremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP