不明的 SSH 金鑰代表什麼
列在 GitHub 帳號上的 SSH 金鑰,是一項能以該帳號身分通過驗證的憑證。看到自己不認得的金鑰,是展開調查的理由,而不是結論。這把金鑰可能來自你遺忘的裝置、前團隊成員的設定、舊筆電,或某個你未授權的來源。安全的做法是先確認擁有者與用途,再刪除任何東西,因為移除正常流程正在使用的金鑰,會讓該流程中斷。
GitHub 將幾種機制視為各自獨立的存取路徑。個人 SSH 金鑰、附加在儲存庫上的部署金鑰,以及授權的 OAuth 應用程式,是範圍不同的不同機制。稽核其中一種,並不等於稽核了其他幾種。
GitHub 建議將 SSH 金鑰、部署金鑰與授權應用程式視為各自獨立的存取路徑分別稽核。來源
刪除前後檢查清單
把這份清單當作工作清單使用。「刪除前」欄位著重於蒐集事實;「刪除後」欄位著重於確認結果。
| 階段 | 檢查項目 | 為什麼重要 |
|---|---|---|
| 刪除前 | 列出帳號上顯示的每一把 SSH 金鑰,包含其標題及任何可見的指紋或建立細節 | 你需要全貌,才能判斷哪一筆是不明的 |
| 刪除前 | 將每把金鑰對應到你能指名的裝置或人員 | 無法指名的金鑰,就是需要質疑的那一把 |
| 刪除前 | 確認目前是否有任何工作流程依賴該金鑰(建置、部署、共用機器) | 刪除使用中的金鑰會讓該流程中斷 |
| 刪除前 | 檢查同樣的存取權是否也透過部署金鑰或授權應用程式授予 | 這些是各自獨立的路徑,需要分別審查 |
| 刪除前 | 決定處置方式:保留、替換或刪除 | 已過期的金鑰可能需要替換,而非單純移除 |
| 刪除後 | 確認該金鑰已不再出現在帳號的 SSH 金鑰清單中 | 可見的清單是你的第一道確認 |
| 刪除後 | 確認受影響的工作流程仍可運作,或你已有替代路徑 | 移除不應讓正常流程陷入停擺 |
| 刪除後 | 記下你移除了什麼、何時移除,但不要記錄金鑰本身 | 留下紀錄有助於日後稽核 |
移除帳號 SSH 金鑰
移除動作本身是在帳號設定中進行。GitHub 記載的路徑是「Settings」(設定),接著「SSH and GPG keys」(SSH 與 GPG 金鑰),你可以在那裡檢視帳號 SSH 金鑰,並刪除無法辨識或已過期的金鑰。
在 Settings 的 SSH and GPG keys 中,檢視帳號 SSH 金鑰,並刪除無法辨識或已過期的金鑰。來源
請把範圍保持狹窄。這個步驟移除的是帳號 SSH 金鑰。它不會移除部署金鑰、撤銷授權應用程式,也不會變更儲存庫內容。如果你的稽核在這些領域發現問題,請把它們當作各自獨立的任務處理。
刪除前應考量的正常流程
並非每一把不熟悉的金鑰都帶有惡意。行動之前,請先考量以下常見情況:
- 你已不再使用的裝置。 舊筆電或工作機可能仍註冊著一把金鑰。如果裝置還在你手上,可以確認是否吻合;如果不在,刪除通常是正確的決定。
- 共用或團隊機器。 其他人可能為了正當目的加入金鑰。移除前請先向擁有者確認。
- 部署或自動化設定。 如果金鑰用於排程程序,刪除它可能讓該程序中斷。請先找出相依關係。
- 你自己建立卻遺忘的金鑰。 標題與建立日期通常能喚起記憶。如果你能將它對應到自己過去的設定,可以選擇保留或替換,而非直接刪除。
有疑問時,較安全的順序是:先確認,再替換成你能控制的金鑰,最後移除舊項目。這樣一來,在關閉不明路徑的同時,仍能維持一條可運作的路徑。
這個流程不做什麼
移除 SSH 金鑰是一項針對性的動作,不是完整的帳號清理。它不會:
- 撤銷 OAuth 應用程式或其他授權整合;
- 從儲存庫移除部署金鑰;
- 證明金鑰由誰建立、為何建立;
- 確認沒有其他存取路徑存在。
請把上述每一項視為獨立的檢查。稽核是一組小而可驗證的步驟,不是一個開關。
使用者名稱搜尋適合與不適合的地方
公開的使用者名稱搜尋可以幫助你了解某個已知帳號在公開平台上似乎與哪些事物有關聯。當你試圖理解某個身分或網路足跡時,這是有用的背景資訊。它無法用來檢視 GitHub 帳號設定,也無法告訴你誰擁有某把 SSH 金鑰。TruthsSeek 介紹的應用程式 TraceSeek,會在多個平台上查詢已知的公開使用者名稱,涵蓋 3,000+ 個平台,並在 20–30 秒內回傳第一次掃描結果,第一次掃描免費。它不會操作 GitHub 設定,而公開比對結果是線索,不是擁有權的證明。
安全地處理憑證
切勿在聊天、問題回報、截圖或論壇貼文中公開私密金鑰、權杖或完整憑證。如果你需要協助辨識金鑰,只分享非機密細節,例如標題或可見的指紋,且只與你信任的人分享。如果你懷疑金鑰已外洩,從帳號移除它是其中一個步驟;輪換任何依賴該金鑰的項目,則是另一個需要審慎決定的獨立事項。