Token导航 LogoToken导航TokenDH.com
Generic Ssh MCP logo
浏览器工具未说明官方级别未说明来源级核验

Generic Ssh MCP

MCP Server

一个灵活的MCP服务器,用于通过SSH在远程服务器上执行命令,支持可配置的命令包装器,适用于需要安全远程操作的环境。

工具数

1

提示词数

0

GitHub Stars

0

资源数

0
HTMLClaude命令行工具Claude DesktopClaude

安装说明

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

作者 / 组织

BlockSecCA

提供方

BlockSecCA

最后核验

2026/5/17 20:21

快速接入

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

详细介绍

通用SSH MCP

一个灵活的MCP服务器,用于通过SSH在远程服务器上执行命令,并带有可选的命令包装器。

特性

  • 持久SSH连接:使用ssh2库快速执行命令
  • 可配置包装器:沙盒、超时或其他控制的可选命令包装器
  • 可配置工具名称:每个实例的自定义工具名称,便于在Claude UI中识别
  • 多个系统:为不同的目标系统构建单独的包
  • 简单的工具界面:带字符串参数的单个工具

快速开始

1.为您的目标系统构建

./build.sh ssh-ubuntupc

这创造了 ssh-ubuntupc.mcpb 您可以在Claude Desktop中安装。该工具将在Claude UI中显示为“ssh-ubuntupc”。

2.在Claude Desktop中安装

  1. 转移 .mcpb 文件到Windows
  2. 双击安装
  3. 配置:

- SSH主机: 192.168.1.70 (使用IP地址,而不是主机名) - SSH用户名: YourUsername - SSH私钥路径: C:\Users\YourUsername\.ssh\id_ed25519 - 命令超时: 30 (秒) - 命令包装器:留空以直接执行,或 srt 用于沙盒 - 工具名称: ssh-ubuntupc (自动填充,有助于区分多个SSH服务器)

3.在Claude中使用

Using ssh-ubuntupc, run: ls -la /home/YourUsername

工具名称配置

当运行多个SSH MCP服务器(例如,每个远程系统一个)时,工具名称有助于在Claude UI中区分它们。

构建脚本会自动设置工具名称以匹配包名称:

./build.sh ssh-kali      # Tool appears as "ssh-kali" in Claude UI
./build.sh ssh-ubuntupc  # Tool appears as "ssh-ubuntupc" in Claude UI

没有这个,所有实例都将显示为“命令”,使其无法区分。

命令包装器

包装器字段允许您控制命令的执行方式:

无包装(空字符串):

  • 命令直接通过bash执行
  • 快速、无限制
  • 用于受信任的环境

随着 srt 包装:

  • 带有内核级限制的沙盒命令
  • 需要在远程系统上安装SRT
  • 文件系统和网络策略执行
  • 有关SRT设置,请参阅INSTALLATION.md

随着 timeout N 包装:

  • 命令限制为N秒
  • 超时自动终止
  • 适用于可能长时间运行的命令

随着 nice -n N 包装:

  • 命令以较低优先级运行
  • 对系统负载的影响较小

定制包装:

  • 任何接受命令字符串的命令
  • 例子: strace -e trace=file 用于调试
\[!警告\] 命令包装器配置:对于直接bash执行,请将包装器字段留空或使用单个空格 " ".切勿使用 "bash" 作为包装器,这会创建一个双bash调用(包装器bash+SSH守护进程bash),导致命令失败。

多个系统

为每个要连接的系统构建一个包:

./build.sh ssh-ubuntupc    # Creates ssh-ubuntupc.mcpb
./build.sh ssh-kali        # Creates ssh-kali.mcpb
./build.sh ssh-pihole      # Creates ssh-pihole.mcpb  
./build.sh ssh-prodserver  # Creates ssh-prodserver.mcpb

每个软件包都是独立的,在Claude Desktop中有自己的配置。每个都将在Claude UI中显示自己的名称,以便于识别。

建筑

graph TD
    subgraph "Windows Machine"
        Claude[Claude Desktop App]
        MCP[MCP Server
Node.js Process]
        SSH2[SSH2 Library
Persistent Connection]
        
        Claude -->|MCP Protocol
stdio| MCP
        MCP -->|uses| SSH2
    end
    
    subgraph "Ubuntu Server ubuntupc"
        SSH_Daemon[SSH Daemon
sshd]
        Wrapper[Optional Wrapper
srt/timeout/direct]
        Shell[Bash Shell]
        
        SSH_Daemon -->|spawns| Shell
        Shell -->|may wrap via| Wrapper
        Wrapper -->|executes| Commands[Commands & Programs]
    end
    
    SSH2 -->|SSH Connection
Port 22
PERSISTENT| SSH_Daemon
    SSH_Daemon -->|stdout/stderr| SSH2
    SSH2 -->|results| MCP
    MCP -->|JSON-RPC| Claude

    style Claude fill:#e1f5ff
    style MCP fill:#fff4e1
    style SSH2 fill:#ffe1e1
    style SSH_Daemon fill:#e1ffe1
    style Wrapper fill:#fff9e1
    style Shell fill:#f0f0f0
Claude Desktop (Windows)
  → MCP Server (Node.js on Windows)
    → SSH2 library
      → SSH connection to remote server
        → [Optional wrapper command]
          → Actual command execution

SRT包装器示例:

User asks: "list files"
  → Tool call: command(command="ls -la")
    → Server wraps: srt 'ls -la'
      → SSH executes on remote: srt 'ls -la'
        → SRT applies policy, spawns bubblewrap
          → Sandboxed bash executes: ls -la

工具定义

姓名: 可通过以下方式配置 tool_name 参数(默认为包名)

参数:

  • command (string,必填):要执行的命令

行为:

  • 检查交互式命令(拒绝vim、top、不带args的sudo等)
  • 如果已配置,则应用包装器
  • 通过持久SSH连接执行
  • 返回stdout、stderr和退出代码

文件

  • manifest.json -MCP包定义
  • server/index.js -MCP服务器实现
  • package.json -Node.js依赖关系
  • build.sh -生成用于创建命名包的脚本
  • INSTALLATION.md -详细的设置指南(以SRT为重点)
  • COMPARISON.md -标准与SRT比较
  • QUICKSTART.md -5分钟设置

SRT安全

使用时 srt 包装:

  1. 在远程系统上安装必备组件:
sudo apt install bubblewrap
sudo chmod u+s /usr/bin/bwrap
npm install -g @anthropic-ai/sandbox-runtime
  1. 创建策略文件(~/.srt-settings.json):
{
  "filesystem": {
    "denyRead": ["~/.ssh/id_rsa", "~/.ssh/id_ed25519", "~/.srt-settings.json"],
    "allowWrite": ["~/projects", "/tmp"],
    "denyWrite": ["/etc", "/usr", "~/.ssh", "~/.srt-settings.json"]
  },
  "network": {
    "allowedDomains": ["github.com", "pypi.org"],
    "deniedDomains": []
  }
}
  1. 测试SRT:
srt 'ls -la'                    # Should work
srt 'cat ~/.ssh/id_ed25519'     # Should be blocked

⚠️ 严重SRT安全警告

默认SRT配置存在安全漏洞:默认情况下,SRT不会阻止对其自己的配置文件的访问。如果没有正确的配置,Claude可以修改 ~/.srt-settings.json 逃离沙箱。

所需保护:

{
  "filesystem": {
    "denyRead": ["~/.srt-settings.json"],
    "denyWrite": ["~/.srt-settings.json"]
  }
}

验证测试:

# This should be BLOCKED
srt 'cat ~/.srt-settings.json'
srt 'echo "malicious" >> ~/.srt-settings.json'

如果这些命令成功,你的沙盒就会受到威胁。SRT必须拒绝对其自己的配置文件进行读写访问,以防止逃逸。

参考:参见 拟人沙盒运行时 有关SRT配置和安全考虑的更多详细信息。

有关完整的设置说明,请参阅INSTALLATION.md。

版本历史记录

  • 3.1.0 -可配置工具名称

- 添加 --tool-name Claude UI中自定义工具名称的参数 - 生成脚本自动设置工具名称以匹配包名称 - 帮助区分多个SSH服务器实例

  • 3.0.0 -具有可配置包装器的通用SSH

- 工具重命名自 bashcommand - 添加了可配置的包装器字段 - 用于创建多个命名包的构建脚本

  • 2.1.0 -SRT特定版本(已弃用)

- 硬编码SRT包装

  • 2.0.0 -持久SSH2连接

- 带有SSH2的原始ubuntu shell mcp

许可证

MIT许可证

作者

Carlos-BlockSecCA

目录标签

目录标签

HTMLClaude命令行工具本地部署SSH工具远程命令执行服务器管理安全沙箱多系统支持

支持客户端

Claude DesktopClaude

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP