「开源项目」我不想再把密码和API Key 塞进接入了API中转站的 Agent 了,所以做了 Airlock

📅 2026/8/1 3:05:09 👁️ 阅读次数 📝 编程学习
「开源项目」我不想再把密码和API Key 塞进接入了API中转站的 Agent 了,所以做了 Airlock

项目网址:Airlock Relay - Github Pages

仓库地址:GitHub - LouisonH/airlock-relay: Local capability-based credential-isolating relay for HTTP, SSH, and LLM APIs · GitHub

最近用 Agent 写代码、跑自动化越来越多,但有件事一直让我不太舒服:为了让它下载一个文件、请求一个 API,或者上服务器执行一条命令,往往得把 API Key、密码、私钥甚至真实服务器地址交出去。

即使 Agent 很可靠,这些内容还是可能出现在提示词、日志、工具输出里。权限一旦给出去,想收回来也不够直观。

所以我做了Airlock:一个开源的、本地运行的凭据隔离转发器。

它的思路很简单:Agent 不接触真实凭据,只拿到一个本地地址和一枚可撤销的“通行证”。真实目标、密码和 Key 留在本机;只有请求符合你预先设定的规则时,Airlock 才会代为转发并注入凭据。

换句话说,给 Agent 的不是万能钥匙,而是一张只能开指定一扇门、随时可以作废的门卡。

我希望它解决什么问题?

比如你希望 Agent:

  • 只能从指定地址下载发布包,不能随便访问整个网络;
  • 只能调用某个 LLM 服务的几个模型,不能拿着上游 Key 任意消费;
  • 只能以一个低权限账号在服务器上执行一条固定命令,不能获得完整 SSH Shell;
  • 使用完后可以直接轮换或撤销本地访问凭据,而不用立刻改动上游账户。

Airlock 面向的正是这些“想授权,但不想裸奔”的场景。

目前已经支持

  • HTTP / Wget:固定上游地址,可限制方法、路径和 Query;支持 Range 下载、受控重定向,以及 Direct/Proxy/Auto 出口。
  • SSH:本地与上游 SSH 会话分离;可固定 Host Key、限制精确命令,并默认拒绝 Shell、PTY、SFTP 和端口转发。
  • LLM API:兼容 OpenAI 的/v1/responses/v1/chat/completions与 Anthropic 的/v1/messages;可配置模型白名单、输出 Token、速率和并发限制。
  • 桌面控制台:管理路由、凭据、Host Key、代理和监听端口。关闭窗口后,转发服务仍可以继续运行。
  • 服务端模式:不依赖桌面环境,可用airlockd --mode server与本地 Unix Socket CLI 管理固定路由。

为什么不是直接把 Key 放进 Agent?

Airlock 会把调用者能看到的内容和需要保护的内容分开:

Agent 可以拿到Airlock 留在本机保护
本地路由别名真实 URL、域名、IP 和 SSH 地址
路由专属、可撤销 Token上游密码、私钥、Cookie 和 API Key
明确允许的操作其他路由与无限制网络访问
脱敏后的本地错误上游身份与凭据细节

它适合用在个人开发环境、代码 Agent、CI 辅助任务、内部自动化和需要把“访问能力”委托出去但不想暴露长期 Secret 的场景。

一个最小示例

给 Agent 的只是本地地址和本地 Token:

wget --header="Authorization: Bearer <local-token>" \ http://127.0.0.1:4768/r/release/file.zip export OPENAI_BASE_URL=http://127.0.0.1:4768/r/coding export OPENAI_API_KEY=<local-api-key> ssh build@127.0.0.1 -p 4770

这里的 Token/API Key 是路由能力凭据,不是上游 Secret。泄露时可以单独撤销或轮换,不必把所有上游凭据一起推倒重来。

想试试的话

当前为v0.1.3 技术预览版,下载包支持macOS 12+ Apple Silicon

npm install -g airlock-relay && airlock-installer install --open

项目地址:GitHub - LouisonH/airlock-relay: Local capability-based credential-isolating relay for HTTP, SSH, and LLM APIs · GitHub

也可以直接前往 v0.1.3 Releases 下载 DMG 和校验文件。源码开发需要 Go 1.24+、Node.js 20+、Rust/Cargo 与 Tauri 2 平台依赖。

后面会逐渐适配Windows,MacOS和Linux,并支持服务器部署

也把边界说清楚

Airlock 是固定路由转发器,不是开放代理、VPN,也不是操作系统级沙箱。当前版本尚未完成独立的生产安全审计;上游响应或 SSH 输出仍可能主动泄露其自身环境。生产使用时请采用专用、低权限的上游账号,并先阅读项目的安全策略。

Airlock 还在很早期的阶段,但核心的 HTTP、SSH 和 LLM 路由已经可用。如果你正在用 Claude Code、Codex、OpenClaw 或自建 Agent,欢迎试用、提 Issue,也很想了解大家最想隔离的凭据和路由场景。

关键词:Agent 安全、LLM API、凭据隔离、Secret 管理、SSH 网关、HTTP 代理、最小权限、开源工具