帖子说了什么
@pcatdev 在讨论「扫描并清理本地聊天记录里的密钥」时强调顺序:先轮换,再扫描清理。密钥一旦贴进对话,就已经发给模型服务提供方;Claude Code 把会话记在用户目录下的 .claude 里,你只删本地文件,修的是磁盘,修不了已经出去的那一份。
为什么这个顺序重要
对照官方 Data usage 相关说明,以及此前整理过的会话记录风险:
- 本地有一份:会话记录默认可在
~/.claude/projects/里找到,读过的.env、命令打印出的 key 会进明文文件。 - 线上也有一份:你把 key 贴进提示词,请求已经发到 Anthropic(或你配置的网关)。清本地记录不会自动作废那次请求里出现过的密钥。
- 只扫不换等于假安全:扫描工具可以帮你找出磁盘上的残留,但若旧 key 仍有效,攻击者或误用路径依然能调用。
推荐做法
- 立刻在控制台吊销:打开 Anthropic Console(或对应云厂商控制台),删除/禁用泄露的 key,再生成新 key。
- 更新所有引用处:CI 密钥、本地环境变量、密钥管理服务、同事机器上的副本一并换成新 key。
- 再清理本地副本:在
~/.claude/projects/里搜索旧 key 前缀(如sk-ant-),确认不再需要恢复这些会话后删除或缩短cleanupPeriodDays。 - 减少再泄露:对
.env、凭据路径加Readdeny;不要把生产 key 贴进聊天「让 Claude 帮看一眼」。
小结
清理本地会话是善后,吊销才是止血。顺序反了,你只是把已经公开过的密钥从硬盘上擦掉,门口的锁却还没换。
