<!-- title: 凭据工位首拆：全栈最粗的一道门 -->

# 凭据工位首拆：全栈最粗的一道门

## 概述

## 一、供给对账：凭据位连续四包零竞标

## 二、评测对比表：凭据卫生四维

总装的权限缝审计只给了站点级两星，本期拆细。四个维度按风险贡献配权：**持币粒度 40%**（这把钥匙能捅开多少门）、**存放位 30%**（币放在哪）、**输出卫生 20%**（币会不会流进对话与落盘文件）、**轮换与预案 10%**（泄了之后有没有下文）。标 ※ 者为定位级推演，置信度低一档：

| 工位 | 持币粒度 | 存放位 | 输出卫生 | 轮换与预案 | 加权 |
|---|:---:|:---:|:---:|:---:|:---:|
| sentry | ★★★★★ | ★★★★ | ★★★★★ | ★ | **4.3** |
| linear（MCP）※ | ★★★ | ★★★★ | ★★ | ★ | **2.9** |
| github-actions-skill | ★ | ★★★★★ | ★★ | ☆ | **2.3** |
| gh-fix-ci | ★★ | ★★★ | ★★ | ★ | **2.2** |
| planning-with-files ※ | ★★★★ | ★ | ★ | ☆ | **2.1** |
| 部署四方言（合评） | ★ | ★★★ | ★ | ☆ | **1.5** |
| loop（值守原语） | 对账位，不评分——它不持币，但把别人的半径乘以时间 | | | | — |

洗牌再度发生：接线拆解单件 3.3 分的 sentry 冲到全场第一，总装里拿了 4.8 全场最高的 planning-with-files 掉进下半区。**凭据维度和功能维度、总装维度给出的冠军是三个不同的件**——这已经是本栏第三次观察到「换一把尺子就换一个冠军」，评分表的维度选择从来不是技术细节，是立场。

## 三、持币姿势三分法

把八个工位怎么拿钥匙归纳一遍，全栈只有三种姿势，没有第四种。

**姿势一：全账号钥匙（部署四方言、gh-fix-ci）。** 部署件的既定前置是平台 CLI 登录——`vercel login`、`wrangler login`、`netlify login`（部署四件首拆存档原文），`gh auth login` 要 repo + workflow 两个 scope（接线拆解存档）。这把钥匙的粒度是**你的整个账号**：账号里有多少项目、多少域名、多少账单，钥匙就有多长。四件部署件的预检清单——环境变量、绑定配齐、yaml 漂移——没有一条问过「这把钥匙能不能降权」。gh-fix-ci 稍好，它的批准门管住了「改什么」，但没管住「用什么改」：读日志的活，用的是能 push 能重触发的全权 gh 身份。

**姿势二：按站发钥匙（sentry，全栈唯一样本）。** 接线拆解引过它的第一段：要求用户提供 **read-only scopes**（`project:read`、`event:read`）的 token，配三条输出卫生条款——"Never ask the user to paste the full token in chat"、"Never echo auth tokens"、输出中 PII 脱敏。外加一条硬规则：强制走 API、禁启发式禁缓存。这是全栈唯一一个**在 SKILL.md 第一屏就规定钥匙形状**的件。它的功能面因此最窄（只有查询），但泄漏半径被锁死在「看」这一格——总装说的「最细的门装在破坏面最小的位置」，本期给出的是它的凭据维度解释。

**姿势三：递钥匙不持钥匙（github-actions-skill）。** 它自己零依赖零 API，但生成的 deploy.yml 有一份 secret 清单，让用户**手动把 SSH 私钥复制进 GitHub Secrets**。接线拆解的判词原文：「该 key 一旦泄漏等于整机 shell」，且全程无最小权限提示。这第三种姿势最隐蔽：件本身干净得像向导，可它递出去的是全栈最粗的币——而且递进了最好的金库。单件评测时这个短板只扣了设计分，凭据维度下它是结构问题：**向导的干净与钥匙的粗细无关。**

## 四、存放位与币值：两个没人同时做对的维度

把八个工位摆进「存放位 × 币值」的格子里，全栈的真实分布是这样的：

| | 粗币（全账号 / 整机） | 细币（按站只读） |
|---|---|---|
| **平台金库**（Secrets / OAuth） | github-actions-skill：SSH 私钥进 Secrets | **空角，无人落座※** |
| **本机存放**（CLI 登录态 / 环境变量） | 部署三件 login、gh-fix-ci 的 gh 身份 | sentry：只读 token 走环境变量 |

两个读法。**其一，最好的金库里至今只进过最粗的币。** GitHub Secrets 有访问控制、有审计、可吊销——存放位满分；可它收的第一件货是 SSH 私钥。存放位选对不等于风险选对，这是 github-actions-skill 2.3 分的全部来源：粒度一星，存放五星。**其二，本机存放不必然是坏选择。** sentry 把只读 token 放环境变量，粒度五星存放四星——只要币足够细，本机反而比金库更省事。反过来，linear 的 MCP OAuth 由宿主与 server 托管、SKILL.md 全程不碰 token 值，结构上最干净，但 scope 粒度由 server 说了算、18 个工具里含写操作※，给了中游分。**「token 放哪」和「token 有多粗」是两个独立决策，全栈没有一件同时做对了这两个决策。**

还有一个存放位本栏从未计分：**对话记录本身**。用户在聊天里贴过 .env、贴过 token，这些内容进了会话日志，复制面和留存期都超过任何单机文件※。sentry 的「不进对话、不回显」两条，防的正是这个没有存放位名称的存放位。

## 五、两处交叉污染：冠军的暗面与放大器的乘法

**交叉一：落盘 × 凭据。** 总装篇把全场最高分给了 planning-with-files——文件即接口、状态全量落盘。但落盘和凭据卫生在结构上是冲突的：状态文件是明文 markdown，如果会话里出现过敏感值，落盘就是把它从「易失的对话」固化成「持久的文件」※。全栈只有 sentry 一件写了输出卫生条款，也就是说**只有它的落盘副产品是安全的**——缝二的解药（多落盘）恰好是缝三的新病灶（多留存）。这不是要推翻 planning-with-files 的冠军位，是要给它补一条它自己没写的使用纪律：状态文件里记凭据名，不记凭据值。

**交叉二：值守 × 凭据。** 红灯值守篇已给出出事半径表，结论是「loop 把上面所有半径乘以时间」。放到凭据维度，乘法更具体：每 30 分钟被唤起一次的，如果是持全账号钥匙的部署件，等于把「一次泄漏概率」变成「每 30 分钟一次的持续暴露」。值守原语本身零持币，所以它在本期评分表里没有分——但它接谁的币，谁就按它的频率重新计价。**给值守回路里的件换细币，收益比给任何单件换细币都大。**

至于 update-config 与 fewer-permission-prompts 这对摩擦层双件：它们管的是**动作放行**（哪个命令免审批），不是**身份粒度**（token 能干什么）。动作白名单写得再细，背后的钥匙还是全账号的——allowlist 是门卫的名单，凭据是门卫自己的证件，两码事。

## 六、凭据流转全景

```mermaid
flowchart TD
    U["手上的钥匙"] --> A["全账号钥匙"]
    U --> B["按站发钥匙"]
    U --> C["递币不持币"]
    A --> A1["CLI 登录态落盘"]
    A1 --> D["部署四方言"]
    A1 --> G["gh-fix-ci"]
    B --> B1["环境变量"]
    B1 --> S["sentry 只读门"]
    C --> C1["SSH 私钥进金库"]
    C1 --> W["CI 里的整机钥匙"]
    D --> L["loop 值守放大"]
    G --> L
    W --> L
    L --> X["半径乘以时间"]
```

三个入口，一个出口：不管从哪种姿势进场，最后都汇入值守回路的放大器。这解释了为什么凭据位的空置比回滚缝更疼——回滚缝缺的是「做错了能撤」，凭据位缺的是「根本别让人拿到能做错的钥匙」，后者是前者的上游。

## 七、今天就能做的四件事

专用件没上架之前，凭据卫生靠既有工具就能补到及格线：

```bash
# 1. 先盘点：看手上这把 gh 钥匙有多粗
gh auth status

# 2. 细币换粗币：GitHub 改用细粒度 PAT（按仓库勾权限、设有效期）
#    Sentry 到后台签只读 token（scopes 只要 project:read + event:read）
export SENTRY_AUTH_TOKEN=<只读token>   # 币只进环境变量，不进对话

# 3. 部署件装机前先想一遍：这个登录态对应的账号，删库按钮离它几步
vercel login    # 登录态 = 全账号钥匙，装哪件就用哪件，不共享账号
```

另外两条不花钱的纪律：给值守回路（loop 唤醒链）里的每个件单独签细币，别让心跳带着全账号钥匙跑；planning 类状态文件落盘前，把任何密钥值替换成环境变量名——文件里留门牌，别留钥匙。

## 八、给仿写者的三条

凭据位既然无人上架，把本期证据提炼成写法，留给第一个竞标者：

1. **scope 写在第一屏**（sentry 范本）。需要什么权限的 token，写进 SKILL.md 第一段而不是注意事项末尾——用户读完八百字向导才发现要去找降权入口，多数人会直接用全账号钥匙凑合。
2. **把泄漏半径算给用户看**（github-actions-skill 反面）。一枚 secret 写清一句话：「这把钥匙泄漏等于什么」——「等于整机 shell」这半句目前是评测文章替它补的，本该它自己写在 secret 清单每一行后面。
3. **输出卫生三连 + 落盘脱敏**。token 不进对话、不回显、敏感值脱敏后再落盘。上下文缝的落盘时代来了，这三条从加分项变成了必选项：**你的件落不落盘不由你决定，但它吐出的内容会被别人落盘。**

## 推荐排行榜

- **凭据卫生榜**：sentry（4.3）＞ linear（2.9※）＞ github-actions-skill（2.3）＞ gh-fix-ci（2.2）＞ planning-with-files（2.1※）＞ 部署四方言（1.5）
- **最值得抄的条款**：sentry 输出卫生三连——全栈唯一成文的凭据纪律，三行字管住了最易漏的两条通道
- **最刺眼的倒挂**：github-actions-skill——五星金库装一星粗币，单件评测的好学生，凭据维度的问题样本
- **隐藏风险榜**：planning-with-files——总装冠军的凭据暗面，落盘越勤快越需要脱敏纪律
- **最急的空位**：「平台金库 + 细币」的角至今无人落座，凭据位专用件（签发、降权、轮换、泄漏预案）四包零竞标——这是全栈验伤单上最后一张没人认领的欠条

## 诚实条款

## 参考来源

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
