🐙 Sigurnosni priručnik za programere ✓ Obvezna usklađenost

Postavljanje 2FA na GitHubu i upravljanje kodovima za oporavak: Najbolje prakse

Zbog ubrzanog rasta napada na opskrbni lanac otvorenog koda diljem svijeta, GitHub zahtijeva obveznu dvofaktorsku autentifikaciju (2FA) za sve programere koji doprinose kodu. Nažalost, tisuće inženjera svakog mjeseca trajno izgube pristup svojim organizacijama i privatnim repozitorijima zbog zanemarenih kodova za oporavak. Ovaj tehnički vodič pokriva konfiguraciju TOTP-a, hladno arhiviranje kodova za oporavak, interakciju s SSH ključevima i kriptografsko hitno spašavanje u slučaju zaključavanja računa.

2FA
Sigurnosni tim 2FA-Tool
Ažurirano u listopadu 2026.
Procijenjeno vrijeme čitanja: 10 min čitanja (više od 2.400 riječi)
GitHub 2FA Kodovi za oporavak Opskrbni lanac
💡 Ključni zaključci za programere (TL;DR)
  • Obvezna primjena je trajna: Programeri koji ne konfiguriraju 2FA do zadanog roka gube mogućnost izvođenja radnji na web sučelju i bit će uklonjeni iz repozitorija organizacije.
  • Kodovi za oporavak su vaš pojas za spašavanje: 16 generiranih kodova za oporavak su jednokratni. Odmah ih pohranite u šifrirani trezor ili u izvanmrežni fizički ispis.
  • Lozinke za Git više ne rade: HTTPS Git slanje koda (git push) ne može prihvatiti interaktivne 6-znamenkaste kodove. Morate koristiti SSH ključeve ili tokene za osobni pristup (PAT) s ograničenim opsegom.
  • Posljednje kriptografsko utočište: Ako izgubite telefon i kodove, vlasništvo možete dokazati potpisivanjem identifikacijskog izazova pomoću svog prethodno registriranog lokalnog privatnog SSH ključa.
01

Pregled obveznih 2FA pravila na GitHubu i sigurnosno obrazloženje

Kroz povijest, kompromitirane vjerodajnice programera izazvale su katastrofalne ranjivosti u lancu opskrbe softverom. Zvučni incidenti — poput preuzimanja paketa event-stream, ua-parser-js, ctx i colors.js na npm-u i PyPI-ju — pokazali su da samo jedan ukradeni račun može ugroziti stotine tisuća komercijalnih i kritičnih infrastrukturnih projekata.

Napadači prikupljaju vjerodajnice pomoću globalnih popisa za napade ubacivanjem vjerodajnica (credential-stuffing), phishing infrastrukture i trojaniziranih programerskih ovisnosti. Budući da softverski inženjeri rutinski rade s root ili administrativnim pristupom izvornom kodu i CI/CD cjevovodima isporuke, osiguravanje autora koda postalo je pitanje međunarodne infrastrukturne sigurnosti.

Kao odgovor na to, GitHub je uspostavio višefazni univerzalni mandat koji zahtijeva dvofaktorsku autentifikaciju za sve autore koda, izdavače paketa, korisnike poslovnih paketa i članove organizacija:

📌 Posljedice propuštanja roka za uključivanje 2FA
  • GitHub web sučelje ulazi u obvezni modalni prozor koji blokira pregledavanje pull requestova, komentiranje problema (issues) i administraciju repozitorija dok se ne dovrši postavljanje 2FA.
  • Poslovne organizacije koje provode 2FA automatski će izbaciti neusklađene članove, odmah im oduzimajući pravo pisanja i pristup repozitorijima.
  • Cjevovodi automatiziranih radnih tijeka, ključevi za objavu npm paketa i granularne dozvole repozitorija zamrzavaju se dok se ne potvrdi sigurnosna usklađenost računa.
02

Vodič korak po korak: Uparivanje TOTP autentifikatora

Iako GitHub podržava SMS, mobilne obavijesti i hardverske ključeve, aplikacija za autentifikaciju temeljena na RFC 6238 TOTP standardu (npr. Google Authenticator, Bitwarden, 2FA-Tool) predstavlja zlatni standard neovisnosti o dobavljaču i pouzdanosti bez pristupa internetu:

1

1. korak: Idite na sigurnosne postavke autentifikacije

Prijavite se na GitHub. Kliknite svoju profilnu sliku u gornjem desnom kutu ➔ Settings (Postavke). Na lijevoj navigacijskoj traci pod "Access" odaberite Password and authentication (Lozinka i autentifikacija).

Put: Settings ➔ Password and authentication ➔ Two-factor methods ➔ Set up authenticator app
2

2. korak: Skenirajte QR kod i sačuvajte izvorni Base32 tajni ključ

GitHub prikazuje optički QR kod uz tekstualnu poveznicu: "enter this text code instead" (unesite ovaj tekstualni kod umjesto toga).

💡 Sigurnosni savjet za profesionalce: Kliknite tekstualnu poveznicu i kopirajte 32-znakovni Base32 tajni niz (npr. A3J5N2O9...). Spremite ga unutar svog šifriranog upravitelja lozinki. Ovaj alfanumerički ključ omogućuje vam ponovno generiranje autentifikacijskih tokena na bilo kojem uređaju ako vam telefon bude uništen.
3

3. korak: Unesite 6-znamenkasti kod za potvrdu

Skenirajte kod svojim mobilnim autentifikatorom. Unesite trenutni 6-znamenkasti broj prikazan na vašem zaslonu u GitHubovo polje za provjeru i kliknite "Continue" (Nastavi).

03

Standardi arhiviranja kodova za oporavak i kriptografska higijena

Nakon uspješnog uparivanja TOTP-a, GitHub odmah prikazuje modalni prozor sa 16 heksadecimalnih tokena odvojenih crticom (npr. d4a2b-98f12). Zatvaranje ovog prozora bez trajnog spremanja sigurnosne kopije najčešći je uzrok trajnog zaključavanja programerskih računa.

🚨 Kriptografske značajke kodova za oporavak

1. Isključivo jednokratna upotreba: Svaki kod za oporavak nepovratno se poništava nakon prve upotrebe umjesto TOTP koda.
2. Glavni autoritet: Kod za oporavak zaobilazi izgubljeni hardver i pruža trenutačni pristup računu.
3. Kriptografsko raspršivanje nultog znanja na poslužitelju: GitHub pohranjuje ove kodove kao nepovratne jednosmjerne kriptografske sažetke. Inženjeri GitHub podrške ni pod kojim okolnostima ne mogu oporaviti niti pročitati vaše izvorne kodove!

Preporučena trostupanjska strategija hladnog skladištenja:

🥇 Prilog u trezoru lozinki

Preuzmite datoteku github-recovery-codes.txt i priložite je svom GitHub unosu u 1Passwordu, Bitwardenu ili KeePassXC-u koristeći glavne ključeve izvedene putem algoritma Argon2id.

🥈 Hardverski trezor izoliran od mreže

Spremite tekstualnu datoteku na izvanmrežni USB pogon šifriran VeraCryptom koji je isključen iz lokalnih mreža i sinkronizatora u oblaku.

🥉 Vodootporni fizički ispis

Ispišite fizički primjerak na papir, plastificirajte ga radi zaštite od vlage i osigurajte unutar kućnog sefa kao zaštitu od zlonamjernih programa za krađu podataka (info-stealera).

Upozorenje o sprječavanju curenja iz međuspremnika: Prilikom kopiranja vaših 16 kodova za oporavak, budite oprezni s upraviteljima povijesti međuspremnika (kao što su Alfred, Raycast ili Windows Clipboard History). Osjetljivi kodovi za oporavak pohranjeni u nešifriranim bazama podataka međuspremnika mogu biti izvučeni od strane zlonamjernog softvera s niskim ovlastima. Uvijek očistite međuspremnik odmah nakon što zalijepite vjerodajnice za oporavak u svoj šifrirani trezor.
04

Rezervne metode autentifikacije: SMS u odnosu na pristupne ključeve (Passkeys) i GitHub Mobile

GitHub dopušta konfiguriranje sekundarnih rezervnih mehanizama. Pregledajte našu sigurnosnu analizu trenutnih autentifikacijskih metoda:

Metoda Otpornost na phishing Ranjivost na zamjenu SIM kartice (SIM-Swap) Ocjena i praktična primjena
Pristupni ključevi / FIDO2 sigurnosni ključevi Apsolutna (WebAuthn vezanje uz domenu sprječava proxy phishing) Imuni ⭐⭐⭐⭐⭐ Najbolja preporuka (YubiKey / Touch ID)
Aplikacija za TOTP autentifikaciju Umjerena (Ranjiva na obrnute proxy poslužitelje u stvarnom vremenu) Imuna ⭐⭐⭐⭐ Univerzalna osnova (Nula ovisnosti o povezivosti)
GitHub Mobile Push odobrenje Umjerena (Zahtijeva potvrdu 2-znamenkastog broja) Imuna ⭐⭐⭐⭐ Izvrsna svakodnevna praktičnost
Rezervna provjera putem SMS-a Nula (Nešifrirana SS7 signalizacija, lako se presreće) Visok rizik ⭐ Ne preporučuje se autorima važnih projekata
05

Git tijekovi rada u terminalu: SSH ključevi, PAT tokeni i interakcija s 2FA

Nakon aktivacije 2FA, programeri se često susreću s pogreškama u terminalu tijekom uobičajenog slanja koda:

remote: Support for password authentication was removed on August 13, 2021.
fatal: Authentication failed for 'https://github.com/username/repo.git/'

Tehničko obrazloženje: Git protokol ne može obrađivati interaktivne dijaloge za unos 6-znamenkastog TOTP koda. Kao rezultat toga, GitHub je trajno ukinuo autentifikaciju lozinkom računa za HTTPS Git zahtjeve kada je 2FA aktivan.

🔑 Opcija A: Autentifikacija SSH ključem (preporučeno)

Koristi kriptografiju javnog ključa (preporučeno: ed25519). SSH veze autentificiraju se putem lokalnih kriptografskih privatnih ključeva i u potpunosti zaobilaze web 2FA bez čestih upita za unos vjerodajnica.

ssh-keygen -t ed25519 -C "[email protected]"
🎫 Opcija B: Tokeni za osobni pristup (PAT)

Ako je prijenos putem HTTPS-a obvezan, idite na Settings ➔ Developer settings ➔ Personal access tokens kako biste generirali token sa specifičnim opsegom. Kada se u terminalu zatraži lozinka, zalijepite PAT umjesto lozinke svog računa.

Potpisivanje SSH predaja u odnosu na autentifikaciju: Imajte na umu da se upotreba SSH ključa za kloniranje i slanje repozitorija razlikuje od kriptografskog potpisivanja predaja (commitova). Možete upotrijebiti isti par Ed25519 ključeva za potpisivanje predaja pomoću git config commit.gpgsign true i git config gpg.format ssh, čime dobivate oznaku provjerenog autora na GitHubu uz strogu kontrolu pristupa putem 2FA.

06

Oporavak od katastrofe: Otključavanje zaključanih računa bez 2FA

U slučaju katastrofalnog kvara kada izgubite telefon s 2FA i dokument s kodovima za oporavak, GitHub nudi posljednji kriptografski pojas za spašavanje: Izazov s potpisom SSH ključa.

1
Pokrenite žalbu za zaključani račun Na 2FA obrascu tijekom prijave kliknite "Unable to verify via 2FA?" ➔ odaberite "Use emergency recovery code" ➔ ako nije dostupan, kliknite "Request two-factor authentication reset".
2
Potvrdite jednokratni kod sa sigurnosne e-pošte GitHub šalje 6-znamenkasti potvrdni PIN na vašu primarnu provjerenu adresu e-pošte. Unesite kod za prijelaz na provjeru identiteta.
3
Izvršite lokalni terminalski izazov SSH ključem GitHub generira jedinstveni izazovni niz i upućuje vas da ga potpišete u terminalu svoje radne stanice:
echo "JedinstveniIzazovniNiz" | ssh-keygen -Y sign -n "github" -f ~/.ssh/id_ed25519
Zalijepite potpisani blok natrag u web portal. GitHub matematički provjerava odgovara li potpis vašem registriranom javnom SSH ključu, nepobitno dokazujući vlasništvo nad računom i otključavajući vaš profil nakon razdoblja pregleda.
🔒 Kriptografsko izolirano okruženje na strani klijenta

Lokalno testirajte svoj GitHub TOTP tajni ključ

Prije dovršetka postavljanja, testirajte svoj izvorni Base32 tajni niz u 2FA-Toolu. Svi se sažeci izračunavaju lokalno putem Web Crypto API-ja u pregledniku bez ikakvog slanja na poslužitelj.

Otvori online generator