Token导航 LogoToken导航TokenDH.com
MCP SSH Orchestrator logo
安全风控stdio官方级别未说明来源级核验

MCP SSH Orchestrator

MCP Server

MCP SSH Orchestrator是一款基于零信任模型的SSH编排工具,通过声明式策略即代码实现安全审计和访问控制,适用于AI助手安全管理服务器基础设施的场景。

工具数

0

提示词数

0

GitHub Stars

22

资源数

0
PythonClaude审计日志Claude DesktopClaudeCursor

安装说明

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

作者 / 组织

samerfarida

提供方

samerfarida

最后核验

2026/5/17 20:20

运行时

Docker

快速接入

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

命令预览

docker run -d --name mcp-ssh-orchestrator \

详细介绍

MCP SSH Orchestrator

Zero-Trust SSH Orchestration for AI Assistants

Enforce declarative policy-as-code and audited access for Claude Desktop, Cursor, and any MCP-aware client.

Launch in minutes with Docker + MCP tooling, deny-by-default controls, and hardened SSH key management.

![License](LICENSE) ![MCP](https://pypi.org/project/mcp/1.27.0/) ![Python](https://python.org) ](https://github.com/samerfarida/mcp-ssh-orchestrator) ![OpenSSF Scorecard](https://scorecard.dev/viewer/?uri=github.com/samerfarida/mcp-ssh-orchestrator) ](https://github.com/samerfarida/mcp-ssh-orchestrator/releases) ](https://github.com/samerfarida/mcp-ssh-orchestrator/stargazers) ](https://github.com/samerfarida/mcp-ssh-orchestrator/network/members) ](https://github.com/samerfarida/mcp-ssh-orchestrator/issues) ](https://github.com/samerfarida/mcp-ssh-orchestrator/pulls) ](https://github.com/samerfarida/mcp-ssh-orchestrator/graphs/contributors) ](https://github.com/samerfarida/mcp-ssh-orchestrator/commits/main) ](https://github.com/samerfarida/mcp-ssh-orchestrator/actions) ![CodeQL Analysis](https://github.com/samerfarida/mcp-ssh-orchestrator/actions/workflows/codeql.yml)

______________________________________________________________________

这解决了什么问题?

想象一下: 你的AI助手(Claude、ChatGPT等)可以访问你的服务器,但你害怕它会做什么。 rm -rf /?删除数据库?更改防火墙规则?

现在想象一下: 你的人工智能已经控制了对你的基础设施的可审计访问。它可以检查日志、重启服务和管理您的车队, 但前提是你的安全策略允许。

这正是MCP SSH Orchestrator所提供的: 人工智能驱动的服务器管理的强大功能,包括默认拒绝访问控制、IP分配列表、主机密钥验证和由声明性YAML策略作为代码支持的全面审计日志记录(config/servers.yml, config/credentials.yml, config/policy.yml).

为何这很重要

零信任安全模型

  • 默认情况下拒绝:除非明确允许,否则不会运行任何内容
  • 网络控制:IP allowlists防止横向移动
  • 命令白名单:只有批准的命令才能执行
  • 声明性策略作为代码:版本化的YAML文件定义了主机、凭据和允许的命令
  • 全面的审计跟踪:每个操作都以JSON格式记录

防止常见的攻击媒介

  • 危险命令被阻止: rm -rf, dd,文件删除
  • 网络隔离:服务器无法访问外部互联网
  • 无特权升级:在容器中以非root身份运行
  • 资源限制:CPU和内存上限可防止DOS

生产就绪审计和安全

  • OWASP LLM Top 10保护:缓解LLM07(不安全的插件设计)、LLM08(过度代理)、LLU01(快速注入)
  • MITRE ATT&CK对齐:防止T1071(应用层协议)、T1659(内容注入)
  • 结构化JSON审计日志:使用时间戳、哈希值和IP地址完成审计跟踪
  • 法医准备就绪:命令哈希、IP跟踪、详细元数据
  • 实时监控:长时间运行的任务的进度日志

这是给谁的?

Homelab爱好者

  • 使用AI自动化日常服务器维护
  • 安全管理Proxmox、TrueNAS、Docker主机
  • 在不失去SSH安全性的情况下获取故障排除帮助

安全工程师

  • 审计和控制人工智能对基础设施的访问
  • 使用声明性策略作为代码配置实现零信任原则
  • 通过结构化日志记录满足合规要求

DevOps团队

  • 让AI处理日常任务:日志检查、服务重启、更新
  • 通过对话式界面管理服务器组
  • 在保持安全标准的同时减少人工劳动

平台工程师

  • 实现基于人工智能的基础设施管理
  • 为开发人员提供安全的自助服务访问
  • 安全地弥合人工智能和基础设施之间的差距

真实世界用例

场景1:家庭实验室自动化(家庭实验室爱好者)

你说: *克劳德,我的Proxmox主机运行缓慢。你能检查我所有虚拟机上的磁盘使用情况和内存吗*

发生了什么

  • 政策允许 df -hfree -m 在Proxmox主机上
  • 网络检查:私有IP分配列表允许访问
  • 基于标记的执行检查所有标记的主机 proxmox
  • 命令安全执行,无破坏性操作
  • 存储在JSON日志中的完整审计跟踪

场景2:事件响应(DevOps团队)

你说: *“我们看到500个错误。请检查所有生产web服务器上的nginx日志,并向我显示最后100行错误。”*

发生了什么

  • 基于标签的执行: tail -n 100 /var/log/nginx/error.log 运行在所有 web-prod 服务器
  • 强制网络隔离:不允许外部API调用或出口
  • 通过MCP上下文事件实时传输进度日志
  • 结构化输出聚合结果以实现快速分类
  • 完整的审计跟踪,带有事件后审查的时间戳

场景3:全机队维护(平台工程师)

你说: *更新所有临时服务器上的系统包,但在运行升级之前,请先向我展示会发生什么变化*

发生了什么

  • 使用 ssh_plan 预览 apt list --upgradable 穿过 staging 标记主机
  • 查看模拟运行输出以查看待处理的更新
  • 策略验证 apt update && apt upgrade -y 允许在舞台上表演
  • 基于标记的执行在所有临时服务器上并行运行升级
  • 审计日志跟踪哪些服务器已更新以及何时更新

快速开始

1.准备本地配置(一次性)

# Optional: bootstrap everything with the compose helper script
# (runs from the repo root or from your target config directory)
./compose/setup.sh enduser

# Or download it separately
curl -fsSLO https://raw.githubusercontent.com/samerfarida/mcp-ssh-orchestrator/main/compose/setup.sh
chmod +x setup.sh
./setup.sh enduser

如果您更喜欢手动布局,请按照以下步骤操作。

# Pull the latest release
docker pull ghcr.io/samerfarida/mcp-ssh-orchestrator:latest

# Create directories for config, keys, and secrets
mkdir -p ~/mcp-ssh/{config,keys,secrets}

# Copy example configs to get started quickly
cp examples/example-servers.yml ~/mcp-ssh/config/servers.yml
cp examples/example-credentials.yml ~/mcp-ssh/config/credentials.yml
cp examples/example-policy.yml ~/mcp-ssh/config/policy.yml

# Add your SSH key (replace with your private key file)
cp ~/.ssh/id_ed25519 ~/mcp-ssh/keys/
chmod 0400 ~/mcp-ssh/keys/id_ed25519

# (Optional) Pin trusted hosts and prepare secret files
cp ~/.ssh/known_hosts ~/mcp-ssh/keys/known_hosts

# Option 1: Individual secret files (Docker secrets compatible)
cat > ~/mcp-ssh/secrets/prod_db_password.txt  ~/mcp-ssh/secrets/.env  L2A
    L1B --> L2B
    L2A --> L3A
    L2B --> L3B
    L3A --> L4A
    L3B --> L4B

    style L1A fill:#e1f5ff
    style L1B fill:#e1f5ff
    style L2A fill:#d4edda
    style L2B fill:#d4edda
    style L3A fill:#fff3cd
    style L3B fill:#fff3cd
    style L4A fill:#f8d7da
    style L4B fill:#f8d7da

什么被阻止

# Dangerous commands automatically denied
deny_substrings:
# Destructive operations
  - "rm -rf /"
  - ":(){ :|:& };:"
  - "mkfs "
  - "dd if=/dev/zero"
  - "shutdown -h"
  - "reboot"
  - "userdel "
  - "passwd "
# Lateral movement / egress tools
  - "ssh "
  - "scp "
  - "rsync -e ssh"
  - "curl "
  - "wget "
  - "nc "
  - "nmap "
  - "telnet "
  - "kubectl "
  - "aws "
  - "gcloud "
  - "az "

# Network isolation enforced
network:
  allow_cidrs:
    - "10.0.0.0/8"      # Only private IPs
    - "192.168.0.0/16"
  block_ips: []         # Explicit IP blocks (if needed)

允许的内容(示例)

# Safe, read-only commands (using simple_binaries)
rules:
  - action: "allow"
    aliases:
      - "*"
    tags:
      - "observability"
    simple_binaries:
      - uptime
      - whoami
      - hostname
    simple_max_args: 6

# Disk and memory inspection (using structured rules)
  - action: "allow"
    aliases:
      - "*"
    tags:
      - "observability"
    binary: "df"
    arg_prefix: ["-h"]
    allow_extra_args: false

  - action: "allow"
    aliases:
      - "*"
    tags:
      - "observability"
    binary: "free"
    arg_prefix: ["-m"]
    allow_extra_args: false

# Log inspection (using structured rules with path restrictions)
  - action: "allow"
    aliases:
      - "*"
    tags:
      - "observability"
    binary: "tail"
    arg_prefix: ["-n", "200"]
    allow_extra_args: false
    path_args:
      indices: [3]
      patterns:
        - "/var/log/*"

# Service management (controlled)
  - action: "allow"
    aliases:
      - "web-*"
      - "db-*"
    tags:
      - "production"
      - "critical-service"
    binary: "systemctl"
    arg_prefix: ["restart", "nginx"]
    allow_extra_args: false

  - action: "allow"
    aliases:
      - "web-*"
      - "db-*"
    tags:
      - "production"
      - "critical-service"
    binary: "systemctl"
    arg_prefix: ["status"]
    allow_extra_args: true

防范真实威胁

MCP SSH Orchestrator直接解决了MCP生态系统中记录的漏洞:

  • CVE-2025-49596:本地主机暴露的MCP服务→ 仅通过stdio运输缓解
  • CVE-2025-6514:MCP服务器中的命令注入→ 通过基于策略的验证减轻
  • 43%的MCP服务器 存在命令注入缺陷→ 零信任安全模型

文档

完整文档Wiki

第节你将学到什么
快速入门和示例实例和常见工作流程
建筑引擎盖下的工作原理
安全模型零信任设计和控制
配置设置主机、凭据、策略
可观察性和审计记录、监控、合规
部署生产设置指南

供应链完整性

已签名的发布工件:GitHub Release中的每个tarball/zip都附带了由维护者密钥生成的分离GPG签名(openpgp4fpr:6775BF3F439A2A8A198DE10D4FC5342A979BD358).导入密钥并在解包前进行验证:

gpg --receive-keys 4FC5342A979BD358
gpg --verify mcp-ssh-orchestrator-v1.3.0.tar.gz.asc mcp-ssh-orchestrator-v1.3.0.tar.gz

Cosign签名的容器图像:下面的图片 ghcr.io/samerfarida/mcp-ssh-orchestrator 在发布工作流中通过Sigstore无密钥签名进行签名。部署前验证签名(和可选证明):

COSIGN_EXPERIMENTAL=1 cosign verify \
  --certificate-identity-regexp "https://github.com/samerfarida/mcp-ssh-orchestrator/.github/workflows/release.yml@.*" \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  ghcr.io/samerfarida/mcp-ssh-orchestrator:latest

图像摘要和签名与GitHub Packages中的每个标签一起发布,因此您可以在促进环境之间的构建时固定确切的引用(包装饲料).

OpenSSF记分卡:存储库维护一个自动记分卡运行,以跟踪依赖关系、构建设置、分支保护等方面的安全状况(记分卡摘要).

AI能用它做什么?(MCP工具)

你的AI助手有13个内置安全功能的强大工具:

探索与规划

  • ssh_list_hosts -查看所有可用服务器
  • ssh_describe_host -获取主机详细信息和标签
  • ssh_plan - 运行前测试命令 (干运行模式)

执行

  • ssh_run -在一台服务器上执行单个命令
  • ssh_run_on_tag -在多个服务器上运行命令(例如,所有“web”服务器)
  • ssh_run_async -在后台启动长时间运行的任务

监控与控制

  • ssh_get_task_status -检查异步任务的进度
  • ssh_get_task_output -实时流输出
  • ssh_get_task_result -完成后获得最终结果
  • ssh_cancel -安全停止正在运行的同步任务
  • ssh_cancel_async_task -安全停止正在运行的异步任务

管理

  • ssh_reload_config -无需重新启动即可更新主机/凭据
  • ssh_ping -验证与主机的连接

MCP资源+上下文

  • ssh://hosts –发现经过净化的主机清单(别名、标签、描述、凭据存在)
  • ssh://host/{alias} –在不暴露凭据的情况下检查单个主机
  • ssh://host/{alias}/tags –获取仅标记视图以计划标记执行
  • ssh://host/{alias}/capabilities –每个主机的衍生策略摘要、限制和示例命令权限

上下文感知日志记录: 轻量级流 ctx.debug / ctx.info 支持的客户端中的事件(任务开始、完成、取消) ssh_run, ssh_run_on_tag、配置重新加载和异步任务轮询——所有这些都不会暴露原始命令或秘密。

LLM友好提示: 政策/网络拒绝(和 ssh_plan 预览)包含有用的提示,以便助手自动重试 ssh_plan,查阅编排器提示, 或者询问策略/网络更新是否合适 而不是循环执行被阻止的命令。

完整的工具参考和示例

了解更多

关键差异化因素

  • 生产就绪安全:OpenSSF记分卡7.5+分
  • 零信任架构:默认情况下拒绝,例外情况下允许
  • OWASP LLM十大保护:缓解不安全的插件设计、过度代理、快速注入
  • MITRE ATT&CK已对齐:防止内容注入和未经授权的协议使用
  • 注重安全:建立在针对真实CVE的安全第一原则之上(CVE-2025-49596,CVE-2025-6514)
  • 易于集成:适用于Claude、ChatGPT和任何MCP客户端
  • 开源:Apache 2.0许可,社区驱动

用户在说什么

*“最后,我可以让Claude毫无顾虑地管理我的Proxmox集群!”* -Homelab管理员 *“这就是基础设施即代码应该是的。人工智能访问的声明性安全。”* -平台工程师 *“结构化的审计日志使事件响应变得更加容易。”* -安全工程师

贡献

我们欢迎捐款!查看我们的 贡献指南 用于:

  • 开发设置
  • 行为准则
  • 如何提交PR
  • 架构决策

许可证

Apache 2.0-请参阅 许可证 了解详情。

链接

______________________________________________________________________

Ready to give AI secure server access?

Start with our Usage Cookbook →

目录标签

目录标签

PythonClaude审计日志零信任安全本地部署SSH管理AI基础设施策略即代码

支持客户端

Claude DesktopClaudeCursor

接入字段

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

stdio

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

token

运行时(runtime,运行环境)

Docker

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

remote-capable

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiotokenremote-capable

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

安装前确认

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

来源信息

继续浏览同类 MCP