Confidant

🔐 安全接收用户机密 · 零聊天暴露

Secure CLI tool for AI agents to receive secrets from humans without chat exposure, using ephemeral web forms and automatic credential storage.

收藏
9.4k
安装
2.5k
版本
1.5.3
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

Confidant 是一款专为 AI Agent 设计的敏感信息接收工具,解决"如何安全获取用户 API Key、密码、Token"这一关键场景。其核心流程为:Agent 执行脚本 → 生成安全 URL → 将 URL 发送给用户 → 用户在浏览器中提交敏感信息 → 脚本自动接收并保存至本地文件。

主要脚本 request-secret.sh 支持多种模式:

  • --service <name>:按约定保存至 ~/.config/<name>/api_key
  • --save <path>:指定显式文件路径
  • --env <varname>:同时设置环境变量
  • --tunnel:为远程用户自动启动 localtunnel 公网隧道
  • --json:结构化输出便于自动化处理

针对 Agent 运行时的超时限制,文档强调必须使用 tmux 保持长轮询进程存活,避免在 exec 中直接执行导致被 SIGKILL。

显著优点

1. 零聊天暴露:敏感信息全程不经过对话历史,杜绝日志残留
2. 自动化闭环:从 URL 生成、隧道建立、轮询等待到文件保存 (chmod 600) 一气呵成

3. 双隧道支持:localtunnel(免账号)与 ngrok(需账号)自动检测,适应内外网场景

4. 人机协作设计:明确区分 Agent 动作(生成/等待)与用户动作(浏览器提交),流程清晰

5. 工程规范:提供完整 exit code 体系、JSON 错误格式、依赖检查与服务器诊断脚本

潜在缺点与局限性

  • 依赖链较重:需预装 curljqnpm,且需全局安装 Confidant CLI
  • Node.js 生态:基于 npm/npx,对纯 Python/Go 环境不够友好
  • 隧道可靠性:localtunnel 为社区服务,无 SLA 保障,可能偶发不稳定
  • 单点阻塞--poll 模式必须等待用户交互,不适合完全无人值守场景
  • 无加密传输说明:文档未明确说明浏览器→隧道的 TLS 细节,假设依赖 localtunnel/ngrok 的默认加密

适合人群

  • 开发 AI Agent 的工程师,需安全集成第三方 API 凭证
  • 远程运维场景,需让用户安全提交服务器密码或 Token
  • 注重审计合规、要求敏感信息不落日志的企业环境

常规风险

| 风险类型 | 说明 |
|---------|------|
| 隧道中间人 | 使用公共 tunnel 服务时,理论上存在 DNS 劫持或服务商嗅探风险 |
| 文件权限误配 | 虽默认 `chmod 600`,但若用户手动修改或 umask 异常,可能导致凭证泄露 |
| 服务器残留 | 未正确关闭的 Confidant 进程可能成为本地攻击面 |
| 社交工程 | 恶意 Agent 可能伪造 Confidant URL 诱导用户提交凭证至钓鱼站点 |
| 超时处理 | 未按文档使用 tmux 时,进程被 kill 后用户提交成功但 Agent 无法感知,造成状态不一致 |

Confidant 内容

scripts文件夹
手动下载zip · 10.2 kB
check-server.shtext/x-shellscript
请选择文件