- Povinné vymáhání je trvalé: Vývojářům, kteří nenastaví 2FA do stanoveného termínu, je zablokován přístup k webovým akcím a odebrána práva v repozitářích organizací.
- Kódy pro obnovení jsou vaše záchranná vesta: Všech 16 vygenerovaných kódů je jednorázových. Okamžitě je uložte do šifrovaného trezoru nebo na fyzický výtisk offline.
- Běžná hesla ke Gitu již nefungují: Příkazová řádka Git přes HTTPS nepodporuje interaktivní zadávání 6místných kódů. Musíte používat klíče SSH nebo tokeny Personal Access Token (PAT).
- Kryptografická poslední záchrana: Pokud ztratíte telefon i kódy, můžete prokázat vlastnictví podepsáním výzvy identity pomocí dříve registrovaného lokálního privátního klíče SSH.
Přehled povinné politiky GitHub 2FA a bezpečnostní důvody
V minulosti vedlo kompromitování přihlašovacích údajů vývojářů k fatálním zranitelnostem v celosvětovém softwarovém řetězci. Mediálně známé incidenty – jako převzetí balíčků event-stream, ua-parser-js, ctx a colors.js v repozitářích npm a PyPI – prokázaly, že jediný ukradený účet může ohrozit stovky tisíc komerčních projektů a systémů kritické infrastruktury.
Útočníci získávají přihlašovací údaje prostřednictvím masivních databází uniklých hesel, phishingových kampaní a trojských koní v závislostech. Vzhledem k tomu, že softwaroví inženýři běžně disponují administrátorskými právy ke zdrojovému kódu a automatizovaným CI/CD procesům, stalo se zabezpečení účtů vývojářů otázkou globální bezpečnosti digitální infrastruktury.
V reakci na to zavedl GitHub univerzální povinnost: dvoufaktorové ověřování je povinné pro všechny autory kódu, vydavatele balíčků, podnikové uživatele i členy organizací:
- Webové rozhraní GitHubu se zablokuje dialogovým oknem a znemožní revize pull requestů, komentování issues i správu repozitářů, dokud konfiguraci 2FA nedokončíte.
- Organizace s vynuceným 2FA automaticky vyřadí nevyhovující členy, čímž jim okamžitě odeberou přístupová práva k zápisu do repozitářů.
- Automatizované workflow pipelines, klíče pro publikování balíčků na npm a granularita přístupů jsou pozastaveny až do ověření souladu s bezpečnostními pravidly.
Spárování TOTP autentizátoru krok za krokem
Ačkoliv GitHub podporuje ověření přes SMS, mobilní notifikace i hardwarové klíče, autentizační aplikace TOTP podle standardu RFC 6238 (např. Google Authenticator, Bitwarden, 2FA-Tool) představuje zlatý standard z hlediska nezávislosti na platformě a spolehlivosti offline:
Krok 1: Přechod do nastavení ověřování
Přihlaste se ke GitHubu. Klikněte na svou profilovou fotku v pravém horním rohu ➔ Settings. V levém postranním panelu pod sekcí „Access“ zvolte Password and authentication.
Krok 2: Naskenování QR kódu a uložení tajného klíče Base32
GitHub zobrazí optický QR kód a pod ním textový odkaz: „enter this text code instead“.
A3J5N2O9...). Uložte jej do svého šifrovaného správce hesel. Tento alfanumerický seed vám umožní kdykoli znovu odvodit ověřovací tokeny na libovolném zařízení, i když dojde ke zničení vašeho telefonu.
Krok 3: Potvrzení zadáním 6místného kódu
Naskenujte kód mobilní aplikací. Zadejte aktuální 6místný kód zobrazený na displeji telefonu do ověřovacího pole na GitHubu a klikněte na „Continue“.
Standardy archivace kódů pro obnovení a kryptografická hygiena
Po úspěšném spárování aplikace TOTP GitHub okamžitě zobrazí dialogové okno s 16 hexadecimálními tokeny s pomlčkou (např. d4a2b-98f12). Zavření tohoto okna bez trvalého uložení kódů je celosvětově nejčastější příčinou nevratného uzamčení vývojářských účtů.
1. Pouze na jedno použití: Každý kód pro obnovení je po svém prvním úspěšném použití namísto kódu TOTP nevratně zneplatněn.
2. Nejvyšší autorita: Kód pro obnovení plně nahrazuje chybějící hardware a okamžitě vám umožní přihlášení.
3. Zero-Knowledge jednosměrné hašování: GitHub ukládá tyto kódy výhradně ve formě nevratných kryptografických hashů. Inženýři technické podpory GitHubu nemohou vaše původní kódy za žádných okolností zjistit ani obnovit!
Doporučená tříúrovňová strategie chladného úložiště:
Stáhněte soubor github-recovery-codes.txt a připojte jej k položce GitHub v 1Passwordu, Bitwardenu nebo KeePassXC s odvozením klíčů pomocí Argon2id.
Uložte textový soubor na offline flashdisk zašifrovaný nástrojem VeraCrypt, který není trvale připojen k síti ani cloudovým službám.
Vytiskněte kódy na papír, zalaminujte je proti vlhkosti a uložte do domácí bezpečnostní schránky či trezoru jako ochranu před vzdáleným malwarem.
Záložní metody ověřování: SMS vs. Passkeys vs. GitHub Mobile
GitHub umožňuje nastavení alternativních metod záložního ověření. Prohlédněte si naše zhodnocení aktuálních autentizačních vektorů:
| Metoda | Odolnost proti phishingu | Riziko SIM swapu | Hodnocení a praktické využití |
|---|---|---|---|
| Passkeys / Bezpečnostní klíče FIDO2 | Absolutní (WebAuthn váže původ domény a brání proxy phishingu) | Imunní | ⭐⭐⭐⭐⭐ Nejvyšší doporučení (YubiKey / Touch ID) |
| Autentizační aplikace TOTP | Střední (zranitelná vůči reverzním proxy v reálném čase) | Imunní | ⭐⭐⭐⭐ Univerzální základ (nulová závislost na síti) |
| Potvrzení výzvy v aplikaci GitHub Mobile | Střední (vyžaduje potvrzení dvoumístného čísla) | Imunní | ⭐⭐⭐⭐ Skvělé každodenní pohodlí |
| Záložní ověření přes SMS | Nulová (nešifrovaná signalizace SS7, snadné odposlechnutí) | Vysoké riziko | ⭐ Nedoporučeno pro klíčové správce repozitářů |
Terminálové Git workflow: Klíče SSH, PAT a součinnost s 2FA
Po aktivaci 2FA se vývojáři v terminálu při odesílání kódu často setkávají s okamžitou chybou:
fatal: Authentication failed for 'https://github.com/username/repo.git/'
Technické vysvětlení: Protokol Git nepodporuje interaktivní dialogy pro zadávání 6místných kódů TOTP. Z toho důvodu GitHub při zapnutém 2FA natrvalo zrušil možnost přihlašování běžným heslem účtu přes HTTPS.
Využívá asymetrickou kryptografii (doporučeno: ed25519). Spojení přes SSH se ověřují lokálním privátním klíčem a zcela obcházejí webové 2FA bez nutnosti neustálého zadávání kódů.
Pokud je protokol HTTPS nezbytný, přejděte do Settings ➔ Developer settings ➔ Personal access tokens a vygenerujte token s příslušnými právy. Při výzvě k zadání hesla v terminálu vložte tento PAT namísto svého hesla.
Podepisování commitů vs. autentizace přes SSH: Pamatujte, že použití klíče SSH pro klonování a pushování repozitářů je nezávislé na kryptografickém podepisování commitů. Stejný pár klíčů Ed25519 můžete využít i k podepisování commitů pomocí git config commit.gpgsign true a git config gpg.format ssh, což na GitHubu zajistí odznak ověřeného autora (Verified) vedle striktního zabezpečení 2FA.
Obnova při havárii: Odemčení zablokovaného účtu bez 2FA
Dojde-li ke katastrofálnímu scénáři, kdy nemáte telefon s 2FA a ztratili jste i dokument s kódy pro obnovení, nabízí GitHub poslední záchranné lano: Kryptografické podepsání výzvy klíčem SSH (SSH Key Signature Challenge).
Otestujte svůj tajný klíč GitHub TOTP lokálně
Před dokončením nastavení si otestujte svůj nezpracovaný tajný řetězec Base32 v nástroji 2FA-Tool. Veškeré hashe se počítají lokálně přes Web Crypto v prohlížeči zcela bez přenosu na server.
📚 Související bezpečnostní příručky
Bezpečný přenos účtů 2FA mezi chytrými telefony pomocí offline QR kódů a synchronizace do cloudu.
Jak obnovit přístup k účtům Google, Microsoft, Steam, Binance, Apple i Discord.
Od RFC 4226 k RFC 6238: Matematické ořezávání hashů, desynchronizace a moderní web.