- Obligatorisk efterlevnad är permanent: Utvecklare som misslyckas med att konfigurera 2FA före sin schemalagda tidsfrist blockeras från att utföra webbåtgärder och utesluts från organisationens arkiv.
- Återställningskoder är din livboj: De 16 genererade återställningskoderna är engångskoder. Spara dem omedelbart i ett krypterat valv eller som en fysisk utskrift offline.
- Git-lösenord fungerar inte längre: Git-överföringar via HTTPS kan inte ta emot interaktiva 6-siffriga koder. Du måste använda SSH-nycklar eller avgränsade Personal Access Tokens (PAT).
- Kryptografisk sista utväg: Om du förlorar din telefon och återställningskoder kan du bevisa kontoinnehav genom att signera en identitetsutmaning med din tidigare registrerade lokala privata SSH-nyckel.
Översikt över GitHubs obligatoriska 2FA-policy och säkerhetsmotivering
Historiskt sett har komprometterade utvecklaruppgifter utlöst katastrofala sårbarheter i programvaruförsörjningskedjan. Uppmärksammade incidenter – såsom övertagandet av event-stream, ua-parser-js, ctx och colors.js på npm och PyPI – visade att ett enda kapat konto kunde äventyra hundratusentals kommersiella projekt och kritisk infrastruktur nedströms.
Angripare samlar in inloggningsuppgifter med hjälp av globala credential-stuffing-listor, nätfiskeinfrastruktur och trojaniserade utvecklarberoenden. Eftersom programvaruutvecklare rutinmässigt arbetar med administrativ åtkomst till källkod och CI/CD-distributionspipeliner har skyddet av kodbidragare blivit en kritisk internationell säkerhetsfråga.
Som svar har GitHub infört ett universellt krav i flera faser som kräver tvåfaktorsautentisering för alla som committar kod, paketpublicerare, företagsanvändare och organisationsmedlemmar:
- GitHubs webbgränssnitt visar en låsande dialogruta som förhindrar pull request-granskningar, ärendekommentarer och repoadministration tills 2FA-konfigurationen slutförts.
- Företagsorganisationer som upprätthåller 2FA kommer automatiskt att utesluta medlemmar som inte uppfyller kraven, vilket omedelbart drar tillbaka skrivbehörigheter och arkivåtkomst.
- Automatiserade pipeline-arbetsflöden, nycklar för publicering av npm-paket och finkorniga arkivbehörigheter fryses tills kontots säkerhetsefterlevnad har verifierats.
Steg-för-steg-handledning: Parkoppling av TOTP-autentiserare
Medan GitHub stöder SMS, mobilaviseringar och säkerhetsnycklar, representerar RFC 6238 TOTP-autentiseringsappar (t.ex. Google Authenticator, Microsoft Authenticator, Bitwarden, 2FA-Tool) guldstandarden för leverantörsoberoende och tillförlitlighet offline:
Steg 1: Navigera till autentiseringsinställningar
Logga in på GitHub. Klicka på din profilavatar i det övre högra hörnet ➔ Settings. I den vänstra navigeringsmenyn under "Access", välj Password and authentication.
Steg 2: Skanna QR-kod och bevara den råa Base32-hemligheten
GitHub presenterar en visuell QR-kod tillsammans med en textlänk: "enter this text code instead".
A3J5N2O9...). Spara den i din krypterade lösenordshanterare. Denna alfanumeriska seed gör att du kan återskapa dina autentiseringstoken på vilken enhet som helst om telefonen skulle förstöras eller förloras.
Steg 3: Ange den 6-siffriga koden för att bekräfta
Skanna koden med din mobilautentiserare. Ange det rullande 6-siffriga numret som visas på din skärm i GitHubs verifieringsfält och klicka på "Continue".
Standarder för arkivering av återställningskoder och kryptografisk hygien
Efter en lyckad TOTP-parkoppling visar GitHub omedelbart en dialogruta med 16 hexadecimala koder med bindestreck (t.ex. d4a2b-98f12). Att stänga denna dialogruta utan att spara en säker säkerhetskopia är den enskilt vanligaste orsaken till permanent utelåsning från utvecklarkonton.
1. Endast för engångsbruk: Varje återställningskod ogiltigförklaras oåterkalleligt efter sin första användning i stället för en TOTP-kod.
2. Överordnad auktoritet: En återställningskod kringgår saknad hårdvara och beviljar omedelbar åtkomst till kontot.
3. Nollkunskaps-hashning på servern: GitHub lagrar dessa koder som oåterkalleliga enkelriktade kryptografiska hashar. GitHubs supporttekniker kan under inga omständigheter återställa eller läsa dina ursprungliga koder!
Rekommenderad kyllagringsstrategi i tre nivåer:
Ladda ner github-recovery-codes.txt och bifoga den till din GitHub-post i 1Password, Bitwarden eller KeePassXC skyddad med Argon2id-härledda huvudnycklar.
Spara textfilen på ett VeraCrypt-krypterat offline-USB-minne som hålls frånkopplat från lokala nätverk och synkroniseringstjänster i molnet.
Skriv ut en papperskopia, laminera den mot fukt och lås in den i ett fysiskt kassaskåp i hemmet för att skydda mot fjärrstyrda informationsstölder (info-stealers).
Reservmetoder för autentisering: SMS vs. Passkeys vs. GitHub Mobile
GitHub tillåter konfiguration av sekundära reservmekanismer. Granska vår säkerhetsanalys över aktuella autentiseringsvektorer:
| Metod | Nätfiskemotstånd (Phishing Resistance) | SIM-swap-sårbarhet | Utvärdering & praktiskt användningsfall |
|---|---|---|---|
| Passkeys / FIDO2-säkerhetsnycklar | Absolut (WebAuthn origin-bindning förhindrar proxy-nätfiske) | Immun | ⭐⭐⭐⭐⭐ Bästa rekommendation (YubiKey / Touch ID) |
| TOTP-autentiseringsapp | Måttligt (Sårbar för omvända proxyservrar i realtid) | Immun | ⭐⭐⭐⭐ Universell baslinje (Helt oberoende av anslutning) |
| GitHub Mobile Push-godkännande | Måttligt (Kräver 2-siffrigt nummerverifieringssteg) | Immun | ⭐⭐⭐⭐ Utmärkt vardaglig bekvämlighet |
| SMS-verifiering som reserv | Noll (Okrypterad SS7-signalering, avlyssnas enkelt) | Hög risk | ⭐ Rekommenderas inte för utvecklare med högt skyddsvärde |
Git-arbetsflöden i terminalen: SSH-nycklar, PAT och 2FA-interaktion
Efter 2FA-aktivering stöter utvecklare ofta på omedelbara terminalfel vid rutinmässiga kod-pusher:
fatal: Authentication failed for 'https://github.com/username/repo.git/'
Teknisk motivering: Git-överföringsprotokollet kan inte hantera interaktiva dialoger med 6-siffriga TOTP-koder. Därför inaktiverade GitHub permanent rå lösenordsautentisering för Git-förfrågningar över HTTPS när 2FA är aktiverat.
Använder asymmetrisk kryptografi (rekommenderat: ed25519). SSH-anslutningar autentiseras via lokala kryptografiska privata nycklar och kringgår webb-2FA helt utan upprepade inloggningsfrågor.
Om HTTPS-transport är obligatorisk, navigera till Settings ➔ Developer settings ➔ Personal access tokens för att generera en token med specifika behörigheter. När CLI ber om ett lösenord, klistra in din PAT i stället för ditt kontolösenord.
Signering av commits med SSH vs. Autentisering: Observera att användning av en SSH-nyckel för att klona och pusha arkiv skiljer sig från kryptografisk commit-signering. Du kan använda samma Ed25519-nyckelpar för att signera commits med git config commit.gpgsign true och git config gpg.format ssh, vilket genererar verifierade författarmärken (Verified) på GitHub tillsammans med strikt 2FA-åtkomstkontroll.
Katastrofåterställning: Lås upp låsta konton utan 2FA
I händelse av ett katastrofalt haveri där din 2FA-telefon är borta och ditt dokument med återställningskoder har förlorats erbjuder GitHub en sista kryptografisk livlina: Utmaning via SSH-nyckelsignering.
Testa din GitHub TOTP-hemlighet lokalt
Innan du slutför konfigurationen kan du testa din råa Base32-hemliga sträng i 2FA-Tool. Alla hashar beräknas lokalt via webbläsarens Web Crypto API utan någon överföring till externa servrar.
📚 Relaterade säkerhetsguider
Säker överföring av 2FA-konton mellan smartphones med hjälp av offline-QR-koder och molnsynkronisering.
Hur du återställer åtkomst till Google, Microsoft, Steam, Binance, Apple och Discord.
RFC 4226 till RFC 6238: Matematisk hash-trunkering, desynkronisering och webbanvändning.