sudo-proxy 是一个特权命令执行代理,附带一个用于 AI 智能体集成的 MCP 服务器。它接收通过 Unix socket 发送的请求,在终端显示单键确认的 TUI 提示供人类批准,然后通过 sudo 提权执行。在 Claude Code 或任何 MCP 客户端中配置 sudo-proxy-mcp 后,模型就能运行特权命令,但每一条命令都必须获得明确的人类批准。
用途
sudo-proxy 填补了当模型需要安装软件包、编辑系统文件、管理服务或运行其他命令时的空白,同时始终让人类处于环路之中,即使在 Claude Code 以 --dangerously-skip-permissions 运行时,人类批准关卡依然生效。它有意不用于以更少审查运行非特权命令:针对本地机器的非特权命令会被拒绝并交回 Bash 工具(Bash 工具已有你的权限规则),像 127.0.0.1 这样的回环别名也无法绕过这一点。sudo-proxy 处理特权升级和远程主机上的命令;在远程主机上,非特权命令同样受关卡控制,只有当你刻意在 hosts.json 中将某主机标记为合格,并且每个会话确认一次(该授权不会被持久化),才会放宽逐命令关卡。
主要能力
- 逐命令人类批准:每个命令,无论是否特权,都要经过单键 Y/N 的 TUI 关卡,无法绕过。
- 通过 sudo 进行真实特权升级:可安装软件包、编辑系统文件、管理服务,不限于只读诊断。
- 本地与远程同一流程:无论命令在本机运行还是通过 SSH 隧道在远程主机运行,批准 TUI 相同。
- 不存储任何秘密:sudo 密码在终端实时输入,不缓存、不加密存储、不写入磁盘。
- 显式 argv:命令按实际执行的样子传递和显示,没有 shell 字符串插值。
- 环境变量清理:使用固定白名单,而非继承的 shell 环境。
- 审计日志:服务器通过 -v 记录每个请求。
- 在 --dangerously-skip-permissions 下仍然工作:即使智能体自身的权限提示被禁用,人类关卡依然有效。
它有意不提供的能力包括:不存储或管理凭据、没有无人值守执行或自动批准模式、不是沙箱、不是策略引擎或 ACL、不限于只读、没有托管服务、不是通用远程 shell(无持久交互会话、SFTP 浏览器或集群管理,只有受关卡控制的一次性命令)。
使用方式
安装二进制文件需要 Rust 工具链;预构建的静态二进制文件在 Releases 中。
cargo install --path .
或者通过 cargo binstall 获取预构建静态二进制文件而不编译:
cargo binstall sudo-proxy
cargo binstall 从 GitHub 下载发布压缩包,并在安装前验证其 minisign 签名(公钥 RWT7gwtBU0v4puI76u0oYwMAT9nmYwGimSOnqJJ+kHExsjTDQj1eZkMW,密钥 ID A6F84B53410B83FB);签名缺失或错误会中止安装。如果更愿意从源码构建,优先使用 cargo install。
将 MCP 客户端指向该服务器——添加到项目的 .mcp.json 或 ~/.claude/claude_desktop_config.json。
作为 Claude Code 插件安装:该仓库同时是一个 Claude Code 插件和它自己的市场。无需手动编辑 .mcp.json:插件注册 sudo-proxy MCP 服务器,并附带一个技能,告诉模型仅在特权或远程工作时使用 sudo-proxy,在执行前启动服务器,并为每条命令编写清晰的描述,以便批准提示易于判断。它不会安装 sudo-proxy-mcp 二进制文件——该文件必须已在你的 PATH 中。一个以明确人类同意为核心的工具不应静默安装自己。
随后模型启动服务器(打开一个带批准 TUI 的终端)并通过它运行命令。每次执行都会在 TUI 中显示确切命令;按 y 批准,按 N(默认)拒绝。对于远程主机,向 start_server 和 execute 传入 host。
已在官方 MCP Registry 中列为 mcp-name: io.github.tarides/sudo-proxy。
适用场景与限制
适用于需要 AI 智能体执行特权系统操作但又必须有人工确认的运维、开发环境配置、远程服务器管理等场景。限制包括:项目尚未经独立审计,仓库中的安全保证是自我产出的;没有自动批准模式,每条命令都需人工按键;不是沙箱,授予的是真实特权;不是策略引擎,人类按键就是策略;不支持持久交互会话或文件传输。安全审查者可从 REVIEWING.md 了解可证伪声明、信任边界以及无保证之处;报告问题参见 SECURITY.md。
文档与相关
docs/install.md 介绍安装变体、远程部署、从源码构建;docs/mcp.md 介绍 MCP 工具(start_server、execute、status、stop_server、update_host)、配置、已知主机;docs/usage.md 介绍 CLI 标志、非特权模式、SSH 隧道、代理转发;docs/protocol.md 介绍 Unix socket 上的 JSON-line 线路协议;docs/security.md 介绍安全模型;docs/security-audit.md 为时点审计;docs/threat-model.md 为 STRIDE 与攻击树;docs/formalisation-roadmap.md 为渐进保证计划;docs/assurance-case.md 为 GSN 论证。proofs/ 包含机器检查模型:TLA+/PlusCal 批准状态机(TLC,Rung 4)和 ProVerif SSH 通道模型(Rung 4);Kani 有界证明位于 src/proofs.rs(Rung 3)。docs/pkexec.md 介绍 --pkexec 模式和 polkit 认证缓存(不推荐);docs/architecture.md 介绍源码布局与实现状态;docs/comparison.md 介绍 sudo-proxy 与其他工具的关系。
开发说明
sudo-proxy 在 Claude Code 的大量 AI 协助下开发。AI 有实质性贡献的提交带有 Co-Authored-By 尾注,指明具体模型。所有设计决策、威胁建模以及每个已提交变更的最终形式均由人类维护者审查和批准,维护者对代码库负责。此披露符合关于生成式 AI 参与软件开发的透明度行业实践,并非声称项目是“AI 生成”的:该工具在运行时强制执行的人类在环原则,也是它构建时所依据的原则。