跳至主要內容
>_ITDITD網站資安平台

資安指南

設定 GitHub 雙重驗證(2FA):驗證器 App、passkey、復原碼,以及手機遺失時該怎麼辦

依據 GitHub Docs 說明如何設定 GitHub 2FA:以驗證器 App 為主、passkey 作為備援、保存復原碼、裝置遺失時的帳號復原(最多 3 個工作天),以及從 SMS 改用其他方式。

發布於 2026-10-06 更新於 2026-10-06 最後核實 2026-10-06 閱讀時間 8 分鐘

適合誰閱讀:想在自己的 GitHub 帳號加上雙重驗證(2FA:除了密碼,再用 App 或金鑰證明是你本人)的人、收到 GitHub「請開啟 2FA」通知的人,以及換了手機或手機遺失、拿不到驗證碼的人。本指南依據 GitHub 的官方文件 GitHub Docs 撰寫,按鈕名稱一律沿用畫面上的英文標示。

誰必須在 GitHub 上使用 2FA

自 2023 年 3 月起,GitHub 一次一批地對在 GitHub.com 上貢獻程式碼的使用者推行強制 2FA。GitHub Docs 列出了以下觸發條件:

  • 為他人發布 App 或 action
  • 為自己的儲存庫建立 release
  • 為特定的高重要性儲存庫貢獻程式碼(例如 Open Source Security Foundation 追蹤的專案),或身為其管理員或貢獻者
  • 身為包含儲存庫或其他使用者的組織的擁有者
  • 身為曾發布一個以上套件的儲存庫的管理員或貢獻者
  • 身為企業管理員

GitHub 指出這些條件可能會隨時間變更。你所在的群組被選中後,會收到通知郵件,45 天的啟用期隨即開始,GitHub.com 上也會出現橫幅提示。如果從未收到這封郵件,你就不在強制的群組中,但 GitHub 仍強烈建議開啟 2FA。

45 天
從通知到啟用期限
7 天
寬限期;過了之後,開啟 2FA 前無法使用 GitHub.com
28 天
開啟 2FA 後的確認檢查期間
16 組
復原碼,每組只能用一次

7 天寬限期過後,在開啟 2FA 之前你都無法存取 GitHub.com。既有的個人存取權杖(API 權杖)與 OAuth 權杖會繼續有效,以免自動化作業中斷。不過,被鎖住的帳號無法授權新的 App,也無法建立新的權杖。

電子郵件驗證不算 2FA

沒有開啟 2FA 的帳號,可能會被要求用寄到電子郵件的驗證碼確認新裝置。GitHub Docs 明確表示,這種電子郵件確認並不是 2FA。

原因是:掌控你信箱的人,既能重設你的密碼,也能通過電子郵件確認。第二個要素必須是和電子郵件分開的東西,例如驗證器 App 或 passkey。

該用哪種方式

GitHub 支援五種 2FA 方式。GitHub Docs 建議以 TOTP 驗證器 App 為主要方式,passkey 或安全金鑰作為備援。如果兩者都沒有,則建議以 GitHub Mobile 作為不錯的備援。

方式能當第一種方式嗎?GitHub Docs 的定位備註
驗證器 App(TOTP)可以建議的主要方式GitHub 建議使用有雲端備份的 App
SMS(簡訊)可以不建議可被攔截,無法抵抗網路釣魚;並非所有國家都能用
passkey不行(在 TOTP 或 SMS 之後)建議的備援一個步驟同時滿足密碼與 2FA
安全金鑰不行(在 TOTP 或 SMS 之後)建議的備援只算第二個要素,需搭配密碼使用
GitHub Mobile不行(在 TOTP 或 SMS 之後)沒有 passkey 或金鑰時的備援在 App 中核准推播通知

TOTP(以時間為基礎的一次性密碼)是指每 30 秒顯示一組新的 6 位數數字的 App。GitHub 不限定 App,Google Authenticator、Microsoft Authenticator、1Password 或任何 TOTP App 都可以用。

passkey 和安全金鑰不能當第一種方式,根據 GitHub Docs 的說明,是因為它們容易遺失,而且目前能同步的裝置範圍太窄。所以順序是:先用驗證器 App 開啟 2FA,再新增 passkey。

主要:驗證器 App

手機上的 TOTP App,並開啟雲端備份

備援:passkey 或安全金鑰

電腦上的 passkey 或實體金鑰,手機遺失也不會被鎖在門外

最後手段:復原碼

16 組驗證碼,存在手機以外的地方,例如密碼管理器

本站建議的配置:主要方式、備援方式與復原碼分別放在不同的地方。

設定步驟(從驗證器 App 開始)

1

安裝驗證器 App

在手機或電腦上安裝 TOTP App。GitHub Docs 建議選擇會把驗證碼備份到雲端的 App,這樣換手機或手機遺失後,新裝置也能產生相同的驗證碼。

2

開啟「Password and authentication」

在任何 GitHub 頁面點選右上角的大頭貼,再點選「Settings」。在側邊欄的「Access」區段點選「Password and authentication」。

3

開啟 2FA 並掃描 QR 碼

在「Two-factor authentication」區段點選「Enable two-factor authentication」。用 App 掃描 QR 碼,並在「Verify the code from the app」下方的欄位輸入 6 位數驗證碼。

如果無法掃描,點選「setup key」即可看到可以手動輸入到 App 的代碼。

4

保存復原碼並完成

在「Save your recovery codes」下點選「Download」。保存好之後,點選「I have saved my recovery codes」即可開啟 2FA。該存在哪裡,請見下一節。

5

新增 passkey 作為第二種方式

在同一個頁面的「Passkeys」下點選「Add a passkey」,用密碼或其他方式確認後,依提示操作。Windows Hello、Face ID、Touch ID 等平台驗證器都可以註冊為 passkey。

如果是實體安全金鑰,請點選「Security keys」旁的「Add」,再點選「Register new security key」。如果是 GitHub Mobile,登入 App 並允許推播通知後,該裝置就能用於 2FA。

6

28 天內用 2FA 登入一次

開啟 2FA 後,帳號會進入 28 天的確認檢查期間。期間內成功用 2FA 登入一次就會結束。如果到第 28 天都沒有,GitHub 會要求你進行 2FA,失敗的話就必須重新設定 2FA。

保存復原碼

復原碼是一次性的驗證碼,在所有 2FA 方式都無法使用時,讓你能回到帳號。共有 16 組,每組用過一次就會失效。

適合的地方

  • 密碼管理器(GitHub Docs 建議)
  • 列印出來,放在家中固定的地方
  • 加密的外接儲存裝置

應避免的地方

  • 只存在和驗證器 App 同一支手機上(手機遺失就兩者都沒了)
  • 放在「下載」資料夾不管(預設檔名 github-recovery-codes.txt)
  • 透過聊天或電子郵件傳給任何人

之後要再查看,請在「Password and authentication」頁面點選「Recovery codes」旁的「View」,再用「Download」、「Print」或「Copy」。產生新的復原碼會讓之前產生的所有復原碼失效,所以請立刻保存新的一組。

GitHub Docs 也把 SSH 金鑰和個人存取權杖列為復原方式。它也建議保留 GitHub.com 的 cookie:如果你的瀏覽器每天清除 cookie,你就永遠不會有可用於復原的已驗證裝置,因為證明你以前用過那台裝置的,正是 _device_id 這個 cookie。

手機遺失或換了新手機時

你手上還有什麼,決定了你能立刻回到帳號,還是要等待審查。請依序嘗試。

你手上還有的該做的事所需時間
復原碼在登入畫面選「More options」,再選「2FA recovery code」立即
passkey 或安全金鑰用它登入立即
驗證器 App 的備份在新手機上還原 App立即
密碼,加上以前用過的裝置、SSH 金鑰或個人存取權杖「More options」,再選「Begin account or email recovery」GitHub Support 審查最多三個工作天
以上皆無帳號無法復原;解除電子郵件的連結,改用在新帳號上—
1

先試復原碼或 passkey

前往 https://github.com/login,輸入使用者名稱和密碼,被要求 2FA 時開啟「More options」。選擇「2FA recovery code」並輸入一組,或使用你的 passkey。進入帳號後,請立刻在新手機上重新設定 2FA。

2

什麼都沒有時,申請帳號復原

在「More options」下點選「Begin account or email recovery」,輸入寄到你電子郵件地址的一次性密碼。接著選擇復原驗證要素:「Verify with this device」(以前在這個帳號用過的裝置)、SSH 金鑰,或個人存取權杖。

GitHub Support 的人員會審查申請,並在三個工作天內以電子郵件回覆。這段期間送出的額外申請不會被審查。如果在 3 到 5 天的等待期間找到復原碼或其他 2FA 方式,隨時都可以使用。

有些帳號連 GitHub Support 也無法恢復

GitHub Docs 明確表示,基於安全理由,如果你同時遺失了 2FA 憑證和復原方式,GitHub Support 不會恢復已開啟 2FA 的帳號的存取權。SSH 金鑰也會在一段時間未使用後從帳號中移除,所以舊的金鑰可能不算數。

這種情況下,唯一的選項是把電子郵件地址從被鎖住的帳號解除連結,再連結到新的或既有的帳號。請在開啟 2FA 的當天,就設定好備援方式並保存復原碼。

從 SMS 改用驗證器 App

如果你已經在用 SMS,可以在不停用 2FA 的情況下新增或變更方式。因為 2FA 一直保持開啟,你的復原碼以及在要求 2FA 的組織中的成員資格都會保留。

1

新增驗證器 App

在「Password and authentication」的「Two-factor methods」下,點選驗證器 App(TOTP)方式旁的「Add」。掃描 QR 碼,輸入 6 位數驗證碼並點選「Save」。

2

設為偏好的方式

在「Two-factor authentication」下的「Preferred 2FA method」,從下拉選單選擇驗證器 App。登入時就會優先顯示這個方式。

3

不再需要 SMS 就移除

在「Two-factor methods」清單中,從 SMS 旁的選單把它移除。GitHub Docs 告訴封鎖不安全方式的組織的成員:先設定安全的方式,再移除 SMS。移除前,請確認能用 App 登入。

有些組織會把使用 SMS 的成員擋在門外

組織擁有者可以開啟「Only allow secure two-factor methods」(只允許安全的雙重驗證方式)。GitHub Docs 把安全的方式定義為 passkey、安全金鑰、驗證器 App 與 GitHub Mobile。在這類組織中,設定了任何 SMS 方式的成員都無法存取組織的資源。

順便檢查的其他設定

2FA 保護的是登入。你已經發出的權杖與金鑰、已經授權的 App,仍然是進入你帳號的其他途徑。在同一天檢查,只要多花幾分鐘。

GitHub 帳號要檢查的項目
新增 passkey
「Password and authentication」的「Passkeys」下,「Add a passkey」。可作為 2FA 備援,也能省略密碼
使用有期限的權杖
「Settings」→「Developer settings」→「Personal access tokens」→「Fine-grained tokens」→「Generate new token」。選擇「Expiration」並限制儲存庫存取範圍
清理已授權的 App
「Settings」→「Applications」的「Authorized OAuth Apps」與「Authorized GitHub Apps」分頁。撤銷不認得或不再使用的項目
檢查 SSH 金鑰
「Settings」→「SSH and GPG keys」。刪除不認得或老舊的金鑰
個人的 push protection
「Settings」→「Code security」→「Push protection for yourself」。封鎖把含有機密的內容推送到公開儲存庫(預設開啟)
Dependabot 警示
「Settings」→「Code security」→「Dependabot alerts」→「Enable all」。也可以設定為新儲存庫自動開啟
安全性日誌
「Settings」→「Security log」(在「Archives」區段)。列出過去 90 天的操作

用 fine-grained 權杖取代 classic 權杖

個人存取權杖(PAT:在 API 與 git 操作中代替密碼使用的字串)有 classic 與 fine-grained 兩種。GitHub 建議盡可能使用 fine-grained 權杖,因為 classic 權杖能觸及你可存取的組織中的所有儲存庫,以及你個人帳號的所有儲存庫。

GitHub 會自動移除一年沒有使用的權杖,但仍強烈建議設定到期日。如果你只需要在命令列使用 GitHub,用 GitHub CLI 或 Git Credential Manager 就完全不必建立權杖。為什麼把外洩的權杖從儲存庫刪掉還不夠,請見 在 GitHub 上公開的 543,699 組憑證仍然有效。

secret scanning 與 push protection 的適用範圍

secret scanning(自動偵測程式碼中的 API 金鑰等機密)會在公開儲存庫上免費自動執行。儲存庫的 push protection,要在該儲存庫的「Settings」→「Advanced Security」中,先開啟「Secret Protection」,再開啟「Push protection」。

組織擁有的私人儲存庫需要付費的 GitHub Secret Protection。一般個人帳號的私人儲存庫則不在涵蓋範圍內。對於這些儲存庫,可以用 gitleaks 這類本機的提交前檢查補上缺口。

給組織擁有者:要求成員開啟 2FA

在組織的「Settings」中,於「Authentication security」下選擇「Require two-factor authentication for everyone in your organization」,再點選「Save」。GitHub Free 與 GitHub Team 方案都能使用。再加上「Only allow secure two-factor methods」,也能把使用 SMS 的成員擋在外面。

開啟後,沒有 2FA 的成員會失去組織資源的存取權,沒有 2FA 的外部協作者會被移除。bot 和服務帳號也包括在內,所以切換前請先通知大家,並在「People」頁面確認誰已經在使用 2FA。

檢查清單

工作位置時間
用驗證器 App 開啟 2FA「Settings」→「Password and authentication」5 分鐘
把復原碼存進密碼管理器同一頁面,「Recovery codes」→「View」2 分鐘
新增 passkey 或安全金鑰同一頁面,「Passkeys」/「Security keys」3 分鐘
28 天內用 2FA 登入一次——
把 classic 權杖換成有期限的 fine-grained 權杖「Settings」→「Developer settings」每個權杖 5 分鐘
清理已授權的 App 與 SSH 金鑰「Settings」→「Applications」/「SSH and GPG keys」5 分鐘
確認 push protection 與 Dependabot 警示「Settings」→「Code security」2 分鐘
如果你擁有組織,要求成員開啟 2FA組織的「Settings」→「Authentication security」含事前通知需數天

出處(公開資料)

本指南中的步驟、期間與行為,已於 2026 年 10 月 6 日對照 GitHub Docs 與其他官方頁面確認。GitHub 的畫面與條件會變更,採取行動前請先確認原始頁面。

接著讀

FAQ

Q在 GitHub 的哪裡開啟雙重驗證?
A

點選右上角的大頭貼,選擇「Settings」,再在側邊欄的「Access」區段點選「Password and authentication」。在「Two-factor authentication」區段點選「Enable two-factor authentication」,用驗證器 App(TOTP)或 SMS 完成設定。passkey、安全金鑰與 GitHub Mobile 可以在設定好 TOTP 或 SMS 之後新增。

QGitHub 的 2FA 是強制的嗎?
A

自 2023 年 3 月起,GitHub 分批要求在 GitHub.com 上貢獻程式碼的使用者開啟 2FA。觸發條件包括建立 release、發布 App 或 action、身為曾發布套件的儲存庫的管理員或貢獻者,以及擁有組織。被選中的使用者會收到電子郵件,並有 45 天的啟用期與 7 天的寬限期;之後在開啟 2FA 之前都無法使用 GitHub.com。沒有收到通知的使用者不受強制,但 GitHub 強烈建議開啟。

QGitHub 2FA 可以用 SMS 嗎?
A

在支援的國家可以;GitHub 有公布清單。但 GitHub Docs 強烈建議改用 TOTP 驗證器 App,因為 SMS 容易被攔截、無法抵抗網路釣魚,而且可靠性較低。有些組織會封鎖設定了 SMS 2FA 的成員。

Q手機遺失或換了新手機,拿不到 GitHub 2FA 驗證碼,怎麼辦?
A

先找你的復原碼(預設檔名是 github-recovery-codes.txt),在登入畫面選擇「More options」,再選「2FA recovery code」並輸入一組。已註冊的 passkey 或安全金鑰也可以用。如果這些都沒有,請選擇「Begin account or email recovery」,驗證寄到電子郵件的一次性密碼,再用以前使用過的裝置、SSH 金鑰或個人存取權杖證明身分。GitHub Support 會審查申請,並在三個工作天內以電子郵件回覆。

Q連復原碼也遺失了,GitHub Support 能恢復我的帳號嗎?
A

不能。GitHub Docs 明確表示,基於安全理由,如果你遺失了 2FA 憑證和復原方式,GitHub Support 無法恢復已開啟 2FA 的帳號的存取權。到了這一步帳號就救不回來了;你能做的是把電子郵件地址從被鎖住的帳號解除連結,改用在新帳號上。

Q如何從 SMS 改用驗證器 App?
A

在「Password and authentication」的「Two-factor methods」下,點選驗證器 App(TOTP)方式旁的「Add」,掃描 QR 碼,輸入 6 位數驗證碼並點選「Save」。接著在「Preferred 2FA method」選擇該 App,如果不再需要 SMS 就把它移除。不需要停用 2FA,所以你的復原碼仍然有效。