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 在交互式会话和流式传输方面存在一些限制)。
相关
- 项目
- 项目
- 项目
- 项目
- 项目