你實際刪除的是什麼
個人存取權杖(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 設定中進行,而不是在查詢應用程式中。