dsh-wsl-secret: DeepSeek Harness WSL 插件

前言

在 DeepSeek Harness (DSH, Cordis) 環境中,處理 API 密鑰(如 OpenRouter Key、Discord Bot Token)需要與 Git 憑據區分開的安全機制。dsh-wsl-cred 專注於 Git 推送/拉取的憑據提示,而本插件 (dsh-wsl-secret) 旨在處理應用層的 API 密鑰。它允許在 WSL/Linux 環境中安全地讀取 pass 和 age 格式的密鑰。

核心功能

  • 安全讀取 pass/age 密鑰。
  • 列出密鑰名稱。
  • 檢查密鑰是否存在。
  • 將密鑰加載到環境變量。
  • 預覽密鑰值。
  • 解密 age 密鑰。
  • 通過 allowPrefixes 配置白名單。
  • 默認不自動顯示完整密鑰(reveal: false)。

安裝與啓用

本插件運行在 WSL/Linux 環境中,且系統 PATH 中需包含 pass 和/或 age 工具。

  1. 安裝必要的命令行工具:
    sudo apt install pass age
  1. 在 DSH profile 中啓用插件並配置白名單。編輯 cordis.patch.yml(例如路徑 ~/.dsh/profiles/web/cordis.patch.yml),添加以下內容:
    plugins:
      dsh-wsl-secret:
        enabled: true
        path: /path/to/dsh-wsl-secret
        config:
          allowPrefixes:
            - dsh
          reveal: false
          timeoutMs: 15000
重啓或重載 profile 後生效。注意:如果不配置 `allowPrefixes`,`secret_status` 將返回 `ready=false`。

工具與用法

插件提供了以下命令:

  • secret_status:檢查 pass/age 工具是否就緒、白名單配置及整體狀態。
  • secret_pass_list:列出所有 pass 密鑰的名稱。
  • secret_pass_exists:檢查指定的 pass 密鑰是否存在。
  • secret_to_env:將 pass 密鑰加載到環境變量(推薦使用)。
  • secret_pass_get:預覽讀取 pass 密鑰內容(慎用,因爲默認 reveal: false)。
  • secret_age_to_env:將 age 密鑰加載到環境變量。
  • secret_age_decrypt:解密 age 密鑰並預覽。

典型工作流

  1. 插入密鑰到 pass:
    pass insert dsh/openrouter
    pass insert dsh/discord-bot
  1. 在 DSH 中檢查狀態:
    { "name": "secret_status" }
  1. 將密鑰加載爲環境變量(推薦):
    { "name": "secret_to_env", "arguments": { "name": "dsh/openrouter", "envKey": "OPENROUTER_API_KEY" }}
同一 dsh 進程內的其他工具可以通過 `process.env.OPENROUTER_API_KEY` 訪問該值。

安全模型

  • 白名單機制:必須顯式配置 allowPrefixes 才能讀取密鑰。如果 allowPrefixes 爲空,則拒絕所有訪問。
  • 默認隱藏:默認 reveal: false,除非在配置中顯式開啓,否則不會在聊天中返回完整的密鑰明文。
  • 使用建議:優先使用 secret_to_env 將密鑰注入環境變量,避免將明文密鑰直接貼入聊天上下文。

許可證

MIT License

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

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

小夜