前言¶
制度裏寫「密鑰每年輪換」,倉庫裏的 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 原文要點):
- 年齡 ≠ 未輪換 —— 密鑰可能在 KMS 裏,本地只是副本;告警需人工確認。
- 不解析證書內容 —— 不校驗有效期、簽發者、密鑰長度。
- 跨環境複用只看
.env類文件 —— KMS、CI secrets 不在可見範圍內。
DSH 社區插件目錄(如 dsh-plugin.org、skillhub.cn)爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;選用插件屬於團隊自主決策。
結尾¶
dsh-key-rotate 把密鑰輪換裏「可對照時間戳與文檔、可掃 .env 引用」的部分做成一條命令鏈:安裝 → --demo / 正式掃描 → --list-rules 或 --html 留痕。它不能替代 KMS 策略與證書生命週期管理,但能補「制度與文件是否一致」這一環。