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 策略與證書生命週期管理,但能補「制度與文件是否一致」這一環。

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

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

小夜