Gitea 凭据: 结构与使用方法 (Agent 必读)
最后更新: 2026-08-17. 实测环境: 大脑机 (zmuke-n-00001) 与 debian-vm (lima), 两台
vault 完全镜像 (D14), 以下命令在任一台均可执行。禁止打印任何 token 值。
1. 结构: 每组织两级 token
| 组织 | profile | 权限级别 | 键 |
|---|---|---|---|
| zmuke | gitea-zmuke-admin |
实例管理员 | GITEA_ADMIN_USER / GITEA_ADMIN_PASSWORD / GITEA_API_TOKEN |
| zmuke | gitea-zmuke-developer |
普通用户 | GITEA_API_TOKEN / GITEA_BASE_URL / GITEA_EMAIL / GITEA_USERNAME |
| slaunchx | gitea-slaunchx-admin |
实例管理员 | GITEA_API_TOKEN / GITEA_BASE_URL / GITEA_USERNAME |
| slaunchx | gitea-slaunchx-developer |
普通用户 | 同上三键 |
| mocalmax | gitea-mocalmax-admin |
实例管理员 | 五键 (含 EMAIL / PASSWORD) |
| mocalmax | gitea-mocalmax-developer |
仅仓库 scope | 四键 |
选择规则: 日常仓库/PR/API 查询用 developer; 建仓、注册公钥、写 CI secret、
用户管理才用 admin。admin 不进 CI、不进脚本常驻。
2. API 调用方法 (按组织, 实测差异重要)
slaunchx — 直连即可
vault --business slaunchx run gitea-slaunchx-developer -- \
sh -c 'curl -H "Authorization: token $GITEA_API_TOKEN" "$GITEA_BASE_URL/api/v1/repos/slaunchx/<repo>"'
mocalmax — 直连; developer 是最小 scope
同 slaunchx 姿势 (BASE_URL = gitea.mocalmax.cc)。注意 developer token **只有仓库
scope**: 调 /user 等非仓库端点会 403, 这是刻意的最小化, 不是故障; 需要更广
端点时换 admin。
zmuke — 分机器, 跨机必须带 Access 头
- 在大脑机上:
GITEA_BASE_URL存的是本机直连地址, 直接用, 最快。 - 在其它机器上: 必须走边缘
https://gitea.zmuke.com, 且该域名在
Cloudflare Access 后面, 需要叠加 cloudflare-zmuke-access-agent 的
service token 头。双 profile 嵌套注入的标准姿势 (值走环境继承, 不进命令行参数):
vault --business zmuke run cloudflare-zmuke-access-agent -- bash -c '
export A_ID="$CF_ACCESS_CLIENT_ID" A_SEC="$CF_ACCESS_CLIENT_SECRET"
exec ~/vault/bin/vault --business zmuke run gitea-zmuke-developer -- bash -c "
curl -H \"CF-Access-Client-Id: \$A_ID\" -H \"CF-Access-Client-Secret: \$A_SEC\" \
-H \"Authorization: token \$GITEA_API_TOKEN\" https://gitea.zmuke.com/api/v1/user"'
3. git 推拉通道 (无须手动碰 token)
两台机均已配好, 直接 git 操作即可:
- HTTPS: 三个 gitea host 的凭据由
git-credential-vault自动注入
(全局 git config 已配 credential.https://<host>.helper), 背后读对应组织的
developer profile。clone/push 直接用 https://gitea.<组织域>/... URL。
- SSH:
zmuke-gitea-dev别名 (zmuke, 经跳板) /
gitea-ssh.mocalmax.cc / gitea-ssh.slaunchx.cc (均为 cloudflared
ProxyCommand 隧道直达, 不经 nginx)。公钥已注册, 开箱即用。
4. 铁律 (与 AGENT-INSTRUCTIONS 一致)
- token 值不打印、不进命令行参数、不进环境文件/仓库/日志。
vault run内禁止 env / printenv / set / shell trace。- 录入/轮换后随手
vault --business <域> sync-to <对端>保持双机镜像;
删除不会被 sync 传播, 需两侧各删。
- 历史教训: 曾有工具 (
cf-setup) 把 token 写进~/.config/dev-env.sh
被全进程继承, 已清除并归档; 发现同类残留立即清理并轮换。
操作员手册,不要公开传播。不含 Token / Account ID / Zone ID。HANDOFF 不在此站。