tufantunc/ssh-mcp

MCP server exposing SSH control for Linux servers via Model Context Protocol.

SSH MCP Server — 为 AI 智能体提供受控的 SSH 访问

简介: 一个专注于安全的 Model Context Protocol (MCP) server,允许 AI 助手(如 Claude)通过 SSH 在远程计算机上运行命令,但同时施加了严格的护栏。它是 LLM 与 shell 之间的桥梁,旨在防止私有数据、不受信任的输入和网络访问这“致命三要素”集中在一起带来的风险。

存在意义: 直接给 AI 提供 shell 访问权限风险很高——提示词注入可能导致其运行恶意命令。该服务器增加了多层控制:对每个命令进行分类,根据策略进行检查,对危险操作要求人工审批,并记录所有操作。

核心功能:

  • 14 个工具用于远程操作:只读命令 (ls, cat)、任意命令、sudo 命令、SFTP 文件传输(通过模型上下文或直接流式传输到磁盘)、交互式/后台会话以及进程信号发送。
  • 策略引擎: 命令被分类为只读、安全、破坏性或特权操作。通过角色 × 主机组矩阵决定允许的操作。您可以定义黑名单模式(例如 terraform destroy)。
  • 人工介入审批: 破坏性命令需要审批,除非您设置了 approvalPolicy = "auto"(生产环境不推荐)。审批授权可以设置时间限制。
  • 审计日志: 记录每一个命令、审批和传输操作。
  • 安全加固: 强制执行配置文件权限(Linux/macOS 要求 0600/0700;Windows 检查 ACL)。支持主机密钥固定。支持 ProxyJump (堡垒机)。支持 SSH CA 证书。不建议使用 root 账户。
  • 会话: 交互式会话在命令之间保留状态(CWD, 环境变量);后台会话运行长进程(例如 tail -f),您可以对其进行轮询。
  • 流式文件传输: 大文件/二进制文件完全绕过模型上下文,直接在本地磁盘和远程主机之间传输,支持原子写入以及大小/时间限制。
  • 主机端识别: 设置 AI_AGENT=ssh-mcp 环境变量,以便操作员区分智能体产生的会话(需要在主机上配置 AcceptEnv)。

工作原理: 您可以在 TOML 文件中配置配置文件(主机、用户、认证方式、角色、审批策略)。服务器通过 SSH(密钥、密码、agent 或 keychain)连接。当智能体调用工具时,服务器会对命令进行分类,根据策略矩阵和黑名单进行检查,必要时请求人工审批,然后执行。所有决策都会被记录。

使用场景: AI 助手的安全远程管理、带监督的自动化部署、监控和日志检查,以及任何您希望 LLM 与服务器交互但又不希望给予其不受限制的 shell 访问权限的场景。

重要注意事项: README 强调这降低了风险但并未消除风险。切勿将其指向 root 账户,也切勿在生产环境配置文件中使用 auto 审批。该工具已在 Linux、macOS 和 Windows 上进行测试(Windows 在交互式会话和流式传输方面存在一些限制)。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目