dsh-key-rotate:用文件时间戳核对密钥与证书是否长期未轮换

前言

制度里写「密钥每年轮换」,仓库里的 id_rsa 或 TLS 私钥文件却可能两年没动过。等保测评会问鉴别信息更换周期,客户尽调会问密钥管理流程——若拿不出可核对的事实,往往只能承认「文档有、落地难证」。

常见做法是人工翻配置、看证书到期日或查 KMS 控制台,但本地副本、.env 与文档是否一致,仍要花时间对齐。下面介绍 DSH 插件 dsh-key-rotate(npm 包名 @deepwhale-cn/dsh-key-rotate,维护者 feely0208,分类 admin-security):在约定范围内做可自动化的检查,把「多久没换」「有没有写轮换制度」「是否跨环境复用」变成可列出的结果。

这是什么

dsh-key-rotate 面向 DeepSeek Harness(DSH)生态,定位是密钥轮换相关审计:查密钥与证书文件多久未更新、文档里能否找到轮换策略、同一密钥是否在多个环境配置中被引用。

判定思路在 README 里写得很直接:用密钥文件的 mtime 推算距今天数,再与阈值对比(默认 365 天)。制度写在纸上,时间戳不会替你说谎,但也不会解释 KMS 里是否已轮换——这一点后面「边界」会说明。

仓库:feely0208/dsh-key-rotate
社区目录:skillhub.cn 插件页

核心功能

插件按 README 中的级别划分检查项,摘要如下。

级别 内容
高 密钥/证书文件超过一年未更新(按 mtime)
中 文档里找不到轮换策略
中 同一密钥在多个环境配置里被引用

与 dsh-bundle-cn-skills 里「密钥有没有被提交」类能力分工不同:本插件查的是「多久没换」,不替代密钥泄露扫描。

当前 package.json 中版本为 0.1.1,许可证 MIT,要求 Node >=18,DSH >=0.1.0-rc.6。

安装与启用

安装命令以 README 原文为准,二选一即可。

接入 DSH(web profile):

dsh plugin --profile web add @deepwhale-cn/dsh-key-rotate

纯 CLI(不经过 DSH 插件装载):

npx @deepwhale-cn/dsh-key-rotate

插件会以当前 dsh 或 node 进程的权限读取工作区内的文件与配置。安装或执行前,应自行查看 GitHub 源码 与 MIT 许可证,确认范围符合团队策略。

典型用法

README 给出的 CLI 示例如下。

先看演示输出,了解检出长什么样:

dsh-key-rotate --demo

列出规则及依据,便于对照等保或内控条文:

dsh-key-rotate --list-rules

将结果导出为 HTML 报告(示例文件名为 r.html):

dsh-key-rotate --html r.html

官方 README 附有报告、演示模式、规则列表的截图(见 deepwhale.org.cn 插件资源),可与本地 --demo 输出对照。

适用场景与注意

适合谁: 需要在自查、改前评估或交付前,快速回答「本地密钥/证书文件是否长期未动」「有没有书面轮换策略」「.env 类配置是否跨环境复用同一密钥」的团队;常与同系列的密钥扫描、配置审计等插件配套使用(README 将其归入「数据与凭据」类能力)。

务必知道的边界(README 原文要点):

  1. 年龄 ≠ 未轮换 —— 密钥可能在 KMS 里,本地只是副本;告警需人工确认。
  2. 不解析证书内容 —— 不校验有效期、签发者、密钥长度。
  3. 跨环境复用只看 .env 类文件 —— KMS、CI secrets 不在可见范围内。

DSH 社区插件目录(如 dsh-plugin.org、skillhub.cn)为独立站点,与 DeepSeek / 幻方无官方从属关系;选用插件属于团队自主决策。

结尾

dsh-key-rotate 把密钥轮换里「可对照时间戳与文档、可扫 .env 引用」的部分做成一条命令链:安装 → --demo / 正式扫描 → --list-rules 或 --html 留痕。它不能替代 KMS 策略与证书生命周期管理,但能补「制度与文件是否一致」这一环。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye