你實際刪除的是什麼
個人存取權杖(personal access token,PAT)只是可代表你的 GitHub 帳戶執行操作的其中一種憑證。刪除任何東西之前,先了解你面對的是哪一種憑證會有幫助,因為移除步驟與連帶影響各不相同。
| 憑證 | 通常用途 | 管理位置 | 刪除後影響 |
|---|---|---|---|
| 個人存取權杖(精細或傳統) | 讓指令碼、工具或 CI 以受限權限代表你操作 | Settings → Developer settings → Personal access tokens | 任何仍在使用該權杖的項目,以及該權杖建立的任何部署金鑰 |
| OAuth 授權 | 你核准代表你帳戶操作的第三方應用程式 | Settings → Applications(已授權的 OAuth 應用程式) | 該應用程式的存取權;應用程式本身不會被刪除 |
| SSH 帳戶金鑰 | 透過 SSH 驗證你帳戶的 Git 操作 | Settings → SSH and GPG keys | 依賴該金鑰的 SSH 存取 |
| 瀏覽器工作階段 | 瀏覽器中已登入的使用中工作階段 | 登出控制項與工作階段設定 | 僅該工作階段;它並非權杖或金鑰 |
本文涵蓋第一列。列出其餘各列,是為了避免混淆:移除 OAuth 授權或 SSH 金鑰不會刪除個人存取權杖,而刪除權杖也不會撤銷 SSH 金鑰或結束瀏覽器工作階段。
步驟 1:建立權杖清單,但不暴露權杖值
目標是列出權杖名稱及每個權杖的使用位置,而非權杖字串清單。請將權杖值視為機密,切勿複製到筆記、工單或聊天中。
- 開啟 GitHub 帳戶設定,前往 Developer settings,然後選擇 Personal access tokens。由於兩種類型分開列出,請同時檢查 Fine-grained tokens 與 Tokens classic。
- 對每個權杖,只記錄:權杖名稱、類型(精細或傳統),以及 GitHub 顯示關於用途或到期日的任何備註。
- 對每個權杖,寫下你認為它被用於何處:CI 工作、部署指令碼、本機工具、排程工作、第三方整合,或你已想不起來的任何地方。
- 標記你無法定位的權杖。無法定位的權杖是待審查的候選項目,而非自動刪除對象——可能仍有東西依賴它。
一個簡單的工作表便足夠:
| 權杖名稱 | 類型 | 已知使用方 | 最後已知使用 | 決定 |
|---|---|---|---|---|
| example-deploy | 精細 | CI 部署工作 | 未知 | 刪除前檢查工作 |
| example-old-script | 傳統 | 未找到 | 舊 | 核實後刪除 |
請勿將權杖值貼入此表。若使用方儲存了權杖,請檢查該系統本身的設定,而非重新讀取機密。
步驟 2:移除前檢查依賴的自動化流程
刪除權杖會中斷任何仍以其驗證的項目。刪除前,請確認每個已知使用方:
- 搜尋你的 CI 設定、部署指令碼與排程工作,查找對權杖名稱或存放該權杖的機密儲存項目之引用。
- 檢查權杖權限是否符合使用方需求。看似未使用的權杖,可能是一項小型工作唯一可用的憑證。
- 逐一決定每個權杖:保留、替換為權限更窄的憑證,或刪除。若無法確認使用方,請暫停而非猜測。
GitHub 記載了一項值得優先檢查的特定依賴關係:曾建立部署金鑰的個人存取權杖與該部署金鑰相連。
GitHub 警告,刪除曾建立部署金鑰的個人存取權杖,會同時刪除該部署金鑰。來源
該警告範圍狹窄。它適用於由該權杖建立的部署金鑰。這並不表示刪除任何權杖都會影響帳戶上的每個 SSH 金鑰、每個部署金鑰或每個整合。請檢查特定權杖的歷史記錄與儲存庫的部署金鑰,而非假設有廣泛影響。
步驟 3:刪除權杖
當你確認某個權杖可安全移除後,GitHub 文件記載的路徑為:
GitHub 的個人存取權杖刪除路徑為:Settings → Developer settings → Personal access tokens → Fine-grained tokens 或 Tokens classic → Delete。來源
刪除後,請核實結果而非假設已成功:
- 確認該權杖不再出現在其所屬類型的清單中。
- 執行或觸發你識別為使用方的自動化流程,檢查它是否仍能驗證。若失敗,表示你發現了遺漏的依賴關係;請以你控制的新憑證恢復存取,而非重複使用舊值。
- 若已刪除的權杖曾建立部署金鑰,請檢查儲存庫的部署金鑰,確認文件記載的移除已發生,且沒有其他金鑰受影響。
需要預備的失敗情況
| 情況 | 應對方式 |
|---|---|
| 刪除後 CI 工作失敗 | 找出它使用了哪個機密,確認工作負責人,並透過正常流程簽發替換憑證 |
| 找不到權杖的使用方 | 不要憑猜測刪除;先搜尋設定檔與機密儲存庫,在確認前保留權杖 |
| 部署金鑰消失了 | 這是權杖建立該金鑰時文件記載的後果;若儲存庫仍需要,請刻意重新建立金鑰 |
| 不確定憑證是權杖還是 OAuth 應用程式 | 檢查它出現在哪個設定區段;兩者分開管理 |
本檢查清單不涵蓋的範圍
本指南不描述輪換憑證、簽發新權杖或變更權限——這些步驟取決於你自己的設定與 GitHub 目前的介面,應在操作時確認。除了指出它們各自獨立外,本文亦不涵蓋移除 OAuth 授權、SSH 帳戶金鑰或瀏覽器工作階段。刪除權杖會移除該憑證;這本身不能證明相連服務所持有的任何資料已被抹除。
用戶名稱搜尋適用與不適用之處
若你的清理工作是更廣泛審查用戶名稱下公開可見內容的一部分,TraceSeek 是一個獨立應用程式,可在 3,000+ 個平台上檢查已知的公開用戶名稱。它會報告公開匹配結果,這些結果是線索而非擁有權證明,且無法登入帳戶、變更帳戶設定、刪除權杖或驗證任何人的真實身份。它不是用於存取私人帳戶或保證移除任何內容的工具。就本文的權杖任務而言,工作是在你的 GitHub 設定中進行,而非在搜尋應用程式中。