憑證
憑證窗格是您為工作區提供其代理程式所需密鑰的地方——git 權杖、SSH 金鑰、雲端憑證、資料庫密碼——而這些密鑰都不會進入 VM。您在此輸入的每一個值都會加密儲存在您的 Mac 上。在沙箱內,代理程式只會看到保留結構的假值(例如 brm_…);當請求實際離開您的 Mac 時,主機端的代理伺服器會將假值換回真值,並限定於目的地主機。
本頁是此窗格逐一欄位的參考說明。其背後的機制——傳輸邊界、確定性假值、主機範圍限定、失敗即關閉的 AWS 重新簽署器,以及入侵偵測器——完整記載於憑證與傳輸邊界。若要瞭解安全模型,請閱讀該章;若要填寫欄位,請閱讀本頁。逐一憑證的核准與寫入政策控制項現在位於防護欄窗格,不再位於此處。
附註: 上方的螢幕截圖早於重新設計,可能顯示較舊、可折疊區段的堆疊。目前的窗格只顯示您已設定的憑證,依類別標題分組,再加上下文說明的兩個按鈕。
窗格開啟時,Git 身分固定於頂端,其後是您已設定的憑證清單——沒有其他內容。每一個已設定的憑證都是一列;過去折疊在窗格上的空白類別已不復存在。底部的兩個按鈕,新增憑證與匯入 env 檔案…,是您新增更多憑證的方式。在您按下儲存之前,任何項目都不會套用。
Git 身分
頂端的兩個欄位設定寫入 VM 內 ~/.gitconfig 的 git 作者身分:
- user.name——預留位置為 Your Name。
- user.email——預留位置為 [email protected]。
說明文字為:寫入 VM 內的 ~/.gitconfig。兩者留白即保留 git 的預設值。 這些並非密鑰,也不會被替換——它們只是純設定,讓代理程式所做的提交能正確歸屬。留白某個欄位會讓該項 git 預設值維持不變。
已設定憑證清單
在 Git 身分下方,窗格只列出實際會在工作階段啟動時產生替換的憑證,並依類別標題分組:
| 標題 | 其下顯示的內容 |
|---|---|
| AGENTS | 在代理程式窗格中設定的代理程式 API 金鑰(Anthropic、OpenAI、xAI),在此以唯讀方式顯示供參考。 |
| GIT | 用於透過 HTTPS 存取 git 的個人存取權杖(GitHub、GitLab、Bitbucket、自架)。 |
| CLOUD | AWS、DigitalOcean、Linear、Kubernetes 環境,以及容器登錄檔。 |
| DATABASES | MongoDB、ClickHouse 與 Elasticsearch 端點。 |
| SSH | 工作區本身的金鑰以及您匯入的任何金鑰。 |
| OTHER | 手動的「其他 API 金鑰」替換規則。 |
每一列顯示一個圖示、一個標題,以及該憑證限定的一個或多個主機(git 權杖為 user@host;資料庫或登錄檔為其主機;AWS 為 amazonaws.com;以此類推)。右側的 ⋯ 選單——也可透過點擊該列開啟——提供編輯…與移除:
- 編輯… 會重新開啟該憑證的編輯器,讓您變更或顯示其欄位。
- 移除 會從工作區刪除該憑證。(除了重新新增之外沒有復原方式;在您儲存之前不會從磁碟移除任何內容。)
AGENTS 下的列是唯一的例外:其選單顯示為在代理程式中編輯…,且沒有移除,因為代理程式金鑰歸屬於代理程式窗格。選擇該項會將編輯器切換至該窗格。
當工作區完全沒有任何憑證時,清單會由空白狀態取代——尚無憑證——提醒您真值留在您的 Mac 上,而 VM 永遠只保有假值。
新增憑證
點擊新增憑證以開啟選擇工作表。它列出應用程式可新增的每一種憑證類型;每個項目會開啟該類型的編輯器:
| 類型 | 其保存的內容 |
|---|---|
| Git 權杖 | GitHub、GitLab 或 Bitbucket 的個人存取權杖。 |
| SSH 金鑰 | 匯入私密金鑰,或使用各工作區專屬金鑰。 |
| AWS 憑證 | 靜態 IAM 金鑰或 SSO——在傳輸時以 SigV4 簽署。 |
| DigitalOcean 權杖 | doctl / API 個人存取權杖。 |
| Linear API 金鑰 | Linear 個人 API 金鑰。 |
| Kubernetes | 叢集環境(權杖、用戶端憑證或 exec 外掛程式)。 |
| 容器登錄檔 | Docker Hub、ghcr.io 及其他的登錄檔登入。 |
| 資料庫 | MongoDB Data API、ClickHouse 或 Elasticsearch。 |
| 其他 API 金鑰 | 任何其他權杖——由您選擇環境變數與主機。 |
代理程式 API 金鑰刻意不列於此選擇工作表中;底部備註提醒您 Anthropic、OpenAI 與 xAI 金鑰是在代理程式窗格中設定。每個編輯器都是一張帶有完成按鈕的工作表;各類型的欄位說明於下方各節。
匯入 env 檔案
點擊匯入 env 檔案… 以從現有的 .env 檔案——或 ~/.bashrc——擷取憑證。此剖析器會讀取純粹的 KEY=VALUE 與 export KEY=VALUE 指派,去除周圍的引號與尾端的 # comments,並在名稱重複時採用最後一個指派。它從不執行 shell:任何需要插補的值($VAR 參照或 $(…) 命令替換)都會被略過,而非以錯誤方式匯入,因此將其指向真實的 .bashrc 是安全的。
該檔案的變數接著會顯示在一張標題為 從 <filename> 匯入 的檢閱工作表中,分為兩組。此工作表中每個值都會遮罩。
已辨識的變數會自動對應到其憑證類型:
| 變數 | 對應到 |
|---|---|
ANTHROPIC_API_KEY | Claude Code API 金鑰 |
OPENAI_API_KEY | Codex API 金鑰 |
XAI_API_KEY | Grok Build API 金鑰 |
GH_TOKEN / GITHUB_TOKEN | GitHub 權杖 |
GITLAB_TOKEN | GitLab 權杖 |
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_SESSION_TOKEN | AWS 靜態金鑰 |
DIGITALOCEAN_ACCESS_TOKEN | DigitalOcean 權杖 |
LINEAR_API_KEY | Linear API 金鑰 |
每個已辨識的列都有一個核取方塊。git 權杖會額外要求一個 Git 使用者名稱(預留位置為 you),使該憑證完整。若某變數對應到工作區已設定的項目,其列會標記為已設定——勾選以覆寫。 並保持未勾選,因此重新匯入絕不會靜默覆蓋既有密鑰。
未辨識的變數可作為通用的其他 API 金鑰權杖匯入。每一列都帶有一個主機欄位——一份以逗號分隔的主機名稱清單,指定假值應在哪些主機上替換(允許多個主機;留白表示任何主機)。env 變數名稱同時被用作該權杖的名稱以及假值匯出所依據的變數。
按鈕顯示為 匯入 N 個憑證,僅反映您保持勾選的列。匯入會將所選項目併入窗格;您仍須點擊儲存才能保存。
SSH 金鑰
SSH 金鑰編輯器管理工作區可透過 SSH 進行驗證的金鑰。私密金鑰位元組永不進入 VM:簽署是透過 vsock 上的行程內 ssh-agent 橋接提供,因此客體可以請求簽章,卻永遠無法讀取金鑰。
金鑰有兩個來源:
- 工作區本身的 ed25519 金鑰組。 新工作區會帶有一個預先勾選的產生 ed25519 金鑰組切換開關(除非您的偏好設定範本已提供金鑰)。金鑰存在後,編輯器會顯示其公開金鑰,並有複製與開啟 GitHub 金鑰頁面按鈕(供貼入
github.com/settings/keys)以及一個重新產生切換開關。 - 匯入的 SSH 金鑰。 在匯入的 SSH 金鑰下,點擊匯入… 以開啟檔案選擇器;接著一張工作表會詢問標籤,若金鑰已加密,還會詢問密碼短語。密碼短語儲存於 macOS Keychain,而匯入的金鑰會在每次工作階段啟動時載入各工作區專屬的 ssh-agent。支援 RSA、ed25519 與 ecdsa 金鑰。
Git 權杖(GitHub、GitLab、Bitbucket)
Git 權杖編輯器保存用於透過 HTTPS 存取 git 的個人存取權杖,分為 GitHub、GitLab 與 Bitbucket 群組。如其說明文字所述:個人存取權杖以加密方式儲存在主機上,代理伺服器會將它們換入外送請求中,因此 VM 永遠只保有假值。gh 與 glab 會自動採用 GH_TOKEN / GITLAB_TOKEN。
在某個群組中點擊新增權杖以新增一列。每一列需要一個主機、一個使用者名稱,以及一個個人存取權杖(附有顯示眼睛按鈕以及連往該 forge 權杖頁面的連結)。假值會寫入 VM 內的 ~/.git-credentials 以及 gh / glab CLI 設定檔。主機欄位讓您可將項目指向 github.com、gitlab.com,或自架的 GitLab/Gitea/Bitbucket 實例。
Linear
Linear API 金鑰編輯器接受單一個人 API 金鑰(預留位置形如 lin_api_…,附有開啟 Linear API 設定連結)。它會作為 LINEAR_API_KEY 注入 VM,Linear SDK、MCP 伺服器與 CLI 工具會自動採用,且僅在對 linear.app(包括 api.linear.app 與 mcp.linear.app)的請求上將假值換成真值。工作區中有 Linear 金鑰也是 Linear 議題排程自動化觸發器的先決條件。
Kubernetes
Kubernetes 編輯器每個叢集環境保存一列。Bromure Agentic Coding 會在 VM 內建立一份合成的 ~/.kube/config,讓 kubectl 與代理伺服器通訊,而非直接與 API 伺服器通訊;真實身分留在主機上。
每個環境都有一個名稱、一個 伺服器 URL、一個選用的 CA 憑證(PEM,供代理伺服器驗證上游 API 伺服器)、一個 命名空間,以及以分段控制項選擇的驗證方法:
- Bearer 權杖——靜態權杖,在傳輸時換成真值。
- 用戶端憑證——真實的憑證與金鑰註冊在主機上供上游雙向 TLS 使用;VM 取得一份可拋棄的自簽憑證。
- Exec 外掛程式——一個 命令、引數,以及一個 重新整理步進器(1–60 分鐘)。該外掛程式在主機上於每個重新整理間隔執行,新的權杖會饋入替換對應;VM 的
kubectl從不執行該外掛程式。
每一列上的徽章顯示其類型(token / cert / exec)。使用匯入檔案… 將現有的 kubeconfig 剖析為每個環境一列,或使用新增環境手動新增一個。相符的逐一環境寫入政策設定於防護欄窗格。
DigitalOcean
DigitalOcean 權杖編輯器接受單一個人存取權杖(預留位置形如 dop_v1_…,附有連往 DigitalOcean 權杖頁面的連結)。它會作為 DIGITALOCEAN_ACCESS_TOKEN 注入並寫入 ~/.config/doctl/config.yaml,因此不需要 doctl auth init。該權杖在對 digitalocean.com 的請求上換成真值,另有第二個替換項目涵蓋當 docker login 或 doctl registry login 對 registry.digitalocean.com 驗證時所使用的 base64 Basic-auth 形式。
AWS
AWS 憑證編輯器為 aws CLI、SDK、terraform 以及 Claude Code 的 Bedrock 驗證模式設定憑證。真實密鑰永不抵達 VM——主機會以真實材料重新簽署 SigV4 請求,而繞過代理伺服器的請求會從 AWS 收到 InvalidSignatureException。一個驗證方法分段控制項可在以下之間選擇:
- 靜態金鑰——存取金鑰 ID、私密存取金鑰、一個選用的 工作階段權杖(僅限 STS),以及一個 預設區域,另加一個 開啟 IAM 憑證頁面連結。
- SSO / Identity Center——一個 授予對 ~/.aws 的存取權資料夾選擇器,接著是一個 SSO 設定檔選擇器,由您
~/.aws/config中探索到的設定檔填入(附有重新整理按鈕)。臨時角色憑證在主機上解析,並在快取權杖過期時於您的瀏覽器中觸發aws sso login。
完整的 AWS 處理方式——credential_process 輔助程式、重新簽署器及其限制——記載於憑證與傳輸邊界。
容器登錄檔
容器登錄檔編輯器保存供 docker pull / docker push 使用的各登錄檔 HTTP Basic 驗證。如說明文字所述,真實密碼永不寫入 VM——bromure 會在 ~/.docker/config.json 中放入一個假的 base64("<user>:<derived>"),而當請求抵達相符的登錄檔主機時,代理伺服器會在傳輸時代入真值。
新增選單提供預設項目——Docker Hub (docker.io)、GitHub Container Registry (ghcr.io)、GitLab Container Registry (registry.gitlab.com)、Quay (quay.io) 與 其他主機…——另加 匯入 config.json…,它會從現有的 ~/.docker/config.json 擷取項目。匯入會略過 credsStore / credHelpers 項目(其密碼存在作業系統的 keychain 而非檔案中),並回報略過了多少個。每個登錄檔列需要一個主機、一個使用者名稱,以及一個密碼或權杖。相符的推送/拉取/刪除寫入政策設定於防護欄窗格。
資料庫(MongoDB、ClickHouse、Elasticsearch)
資料庫編輯器每個 HTTPS 端點保存一列,依引擎分組。假值會以您列出的環境變數名稱匯出,並在其出現之處——標頭、查詢參數或請求主體——換成真值。
每個端點列有:
- 名稱——選用的顯示名稱。
- 主機——純主機名稱;它同時限定替換與該端點的防護欄範圍。
- 驗證——一個分段控制項:使用者名稱 + 密碼、API 金鑰或 Bearer 權杖。MongoDB 預設為 API 金鑰;ClickHouse 與 Elasticsearch 預設為 使用者名稱 + 密碼。
- 使用者名稱——僅供 Basic 驗證使用。
- 密鑰——附有顯示眼睛按鈕。
- 環境變數——一份以逗號分隔的名稱清單,假值應以這些名稱匯出。
新的資料庫端點的逐一端點寫入政策預設為寫入前提示,設定於防護欄窗格——引擎專屬的分類(哪些 Mongo 動作、哪些 SQL 關鍵字、哪些 Elasticsearch 路徑算作寫入)位於該處。
其他 API 金鑰
其他 API 金鑰編輯器是 Bromure Agentic Coding 未自動處理的任何服務的後備方式。每個項目都是一條手動替換規則:
- 名稱——該項目的標籤。
- 真實密鑰——遮罩顯示(預留位置形如
sk_live_…)。 - 環境變數——假值在 VM 內匯出所依據的名稱。留白則不匯出任何內容;您接著會從工作階段的歡迎橫幅複製假值。
- API 主機(選用)——替換所限定的一個或多個主機(完全相符或子網域,以逗號分隔)。留白表示「在任何主機上注入」。
VM 會看到一個鑄造出的 brm_… 假值,代理伺服器會在傳輸時將其換回。
警告: 留白的 API 主機刻意永不受入侵偵測器管控——它是明確的「在任何主機上注入」選擇。若要讓未限定範圍的密鑰維持在掌控之中,請為其指定一個主機,或在防護欄窗格中為它開啟使用前詢問。
核准與寫入政策位於防護欄
憑證窗格中不再有需要核准才能使用的核取方塊。逐一憑證的同意閘門——現在以使用前詢問呈現——以及每項服務的寫入政策,兩者都位於防護欄窗格,該窗格每個已設定憑證列出一列。在此處設定密鑰;在該處決定允許代理程式如何使用它。
此窗格如何儲存
此窗格中的一切都是密鑰,因此在儲存時會從純文字的 profile.json 中分離出來,寫入工作區加密的 secrets.enc(AES-GCM,以 macOS Keychain 派生金鑰,權限 600)。自動處理的供應商——Anthropic、OpenAI、GitHub、GitLab、DigitalOcean、Kubernetes——除了您在此設定的內容外不需任何手動輸入;主要代理程式本身的 API 金鑰設定於代理程式窗格。
設定參考
| 編輯器 | 其保存的內容 |
|---|---|
| Git 身分 | 寫入 ~/.gitconfig 的 user.name / user.email;並非密鑰,不會替換。 |
| SSH 金鑰 | 工作區金鑰組 + 匯入的金鑰;透過 vsock ssh-agent 提供,私密位元組永不進入 VM。 |
| Git 權杖 | GitHub / GitLab / Bitbucket 的各主機使用者名稱 + PAT;假值位於 ~/.git-credentials 與 gh/glab 設定檔中。 |
| Linear API 金鑰 | 以 LINEAR_API_KEY 匯出的 lin_api_… 金鑰;在 linear.app 上替換。 |
| Kubernetes | 環境(bearer / 用戶端憑證 / exec 外掛程式);VM 內的合成 ~/.kube/config。 |
| DigitalOcean 權杖 | 以 DIGITALOCEAN_ACCESS_TOKEN 匯出的 dop_v1_… 權杖 + doctl 設定。 |
| AWS 憑證 | 靜態金鑰或 SSO / Identity Center;主機重新簽署 SigV4,密鑰永不進入 VM。 |
| 容器登錄檔 | 各登錄檔 Basic 驗證;假值位於 ~/.docker/config.json。 |
| 資料庫 | 各端點密鑰以具名環境變數匯出;在標頭、查詢或主體中替換。 |
| 其他 API 金鑰 | 手動替換規則:真實密鑰、環境變數、選用主機篩選;VM 看到一個 brm_… 假值。 |
| 匯入 env 檔案… | 從 .env 或 ~/.bashrc 大量匯入;已辨識的變數自動對應,未辨識的變數則作為限定範圍的通用權杖匯入。 |
逐一憑證的使用前詢問與寫入政策設定於防護欄窗格。