- Zorunlu Uygulama Kalıcıdır: Belirlenen son tarihe kadar 2FA yapılandırmasını tamamlamayan geliştiricilerin web işlemleri yapması engellenir ve organizasyon depolarından erişimleri iptal edilir.
- Kurtarma Kodları Can Simidinizdir: Oluşturulan 16 kurtarma kodu tek kullanımlıktır. Bunları derhal şifreli bir kasada veya çevrimdışı fiziksel bir soğuk çıktıda saklayın.
- Git Parolaları Artık Çalışmıyor: HTTPS Git gönderimleri (push) etkileşimli 6 haneli kodları kabul edemez. SSH Anahtarları veya kapsamı belirlenmiş Kişisel Erişim Belirteçleri (PAT) kullanmanız gerekir.
- Kriptografik Son Çare: Telefonunuzu ve kodlarınızı kaybederseniz, daha önce kaydettiğiniz yerel SSH özel anahtarınızı kullanarak bir kimlik doğrulama sorgusunu imzalayıp hesap sahipliğinizi kanıtlayabilirsiniz.
GitHub Zorunlu 2FA Politikasına Genel Bakış ve Güvenlik Gerekçesi
Tarihsel olarak, ele geçirilen geliştirici kimlik bilgileri yıkıcı yazılım tedarik zinciri güvenlik açıklarını tetiklemiştir. npm ve PyPI üzerindeki event-stream, ua-parser-js, ctx ve colors.js paketlerinin ele geçirilmesi gibi yüksek profilli olaylar, çalınan tek bir hesabın yüz binlerce alt ticari projeyi ve kritik altyapı projesini tehlikeye atabileceğini göstermiştir.
Saldırganlar küresel kimlik bilgisi doldurma (credential-stuffing) listelerini, oltalama (phishing) altyapılarını ve truva atı yerleştirilmiş geliştirici bağımlılıklarını kullanarak kimlik bilgilerini toplar. Yazılım mühendisleri rutin olarak kaynak koduna ve CI/CD dağıtım hatlarına kök (root) veya yönetici erişimiyle çalıştığından, kod göndericilerini güvence altına almak uluslararası bir altyapı güvenliği meselesi haline gelmiştir.
Buna yanıt olarak GitHub, tüm kod göndericileri, paket yayıncıları, kurumsal kullanıcılar ve organizasyon üyeleri için iki faktörlü kimlik doğrulamayı zorunlu kılan çok aşamalı evrensel bir talimat oluşturmuştur:
- GitHub web arayüzü kısıtlayıcı bir pencereye girerek 2FA kurulumu tamamlanana kadar çekme isteği (pull request) incelemelerini, sorunlara yorum yapmayı ve depo yönetimini yasaklar.
- 2FA zorunluluğu uygulayan kurumsal organizasyonlar uyumlu olmayan üyeleri otomatik olarak çıkarır, yazma erişimini kaldırır ve depo ayrıcalıklarını derhal iptal eder.
- Otomatik iş akışı hatları, npm paket yayınlama anahtarları ve ayrıntılı depo izinleri, hesap güvenlik uyumluluğu doğrulanana kadar dondurulur.
Adım Adım Eğitim: TOTP Kimlik Doğrulayıcı Eşleştirme
GitHub SMS, mobil bildirimler ve donanım anahtarlarını desteklese de, RFC 6238 TOTP Kimlik Doğrulayıcı uygulaması (örn. Google Authenticator, Bitwarden, 2FA-Tool) satıcı bağımsızlığı ve çevrimdışı güvenilirlik açısından altın standardı temsil eder:
Adım 1: Kimlik Doğrulama Ayarlarına Gidin
GitHub'a giriş yapın. Sağ üst köşedeki profil avatarınıza tıklayın ➔ Settings (Ayarlar). Sol gezinme kenar çubuğunda "Access" (Erişim) altında Password and authentication (Parola ve kimlik doğrulama) seçeneğini belirleyin.
Adım 2: QR Kodunu Tarayın ve Ham Base32 Gizli Anahtarını Saklayın
GitHub, optik bir QR kodunun yanında "enter this text code instead" (bunun yerine bu metin kodunu girin) ifadeli bir metin bağlantısı sunar.
A3J5N2O9...) kopyalayın. Bunu şifreli parola yöneticinizin içinde saklayın. Bu alfanümerik tohum (seed), telefonunuz bozulursa veya yok olursa herhangi bir cihazda kimlik doğrulama belirteçlerini yeniden türetmenize olanak tanır.
Adım 3: Onaylamak İçin 6 Haneli Kodu Girin
Kodu mobil kimlik doğrulayıcınızla tarayın. Ekranınızda görüntülenen döngüsel 6 haneli sayıyı GitHub'ın doğrulama giriş alanına girin ve "Continue" (Devam Et) düğmesine tıklayın.
Kurtarma Kodları Arşivleme Standartları ve Kriptografik Hijyen
Başarılı TOTP eşleştirmesinin ardından GitHub, anında 16 adet tire ile ayrılmış onaltılık (hexadecimal) belirteç (örn. d4a2b-98f12) içeren bir pencere görüntüler. Kalıcı bir yedek almadan bu pencereyi kapatmak, kalıcı geliştirici hesabı kilitlenmelerinin en yaygın tek nedenidir.
1. Yalnızca Tek Kullanımlıktır: Her kurtarma kodu, bir TOTP kodu yerine ilk kez kullanıldığında geri döndürülemez şekilde geçersiz kılınır.
2. Ana Yetki: Bir kurtarma kodu eksik donanımı geçersiz kılar ve anında hesap erişimi sağlar.
3. Sıfır Bilgi (Zero-Knowledge) Sunucu Özetlemesi: GitHub bu kodları geri döndürülemez tek yönlü kriptografik özetler (hash) olarak saklar. GitHub Destek mühendisleri hiçbir koşulda orijinal kodlarınızı kurtaramaz veya okuyamaz!
Önerilen Üç Katmanlı Soğuk Depolama Stratejisi:
github-recovery-codes.txt dosyasını indirin ve Argon2id türevli ana anahtarlar kullanan 1Password, Bitwarden veya KeePassXC içindeki GitHub kaydınıza ekleyin.
Metin dosyasını, yerel ağlardan ve bulut depolama senkronizasyon araçlarından bağlantısı kesilmiş, VeraCrypt ile şifrelenmiş çevrimdışı bir USB sürücüye kaydedin.
Uzaktan bilgi çalan zararlı yazılımlara (info-stealer) karşı korunmak için fiziksel bir kağıt kopya yazdırın, neme karşı lamine edin ve evinizdeki fiziksel bir kilitli kasada saklayın.
Yedek Kimlik Doğrulama Yöntemleri: SMS, Passkey'ler ve GitHub Mobile Karşılaştırması
GitHub, ikincil yedek mekanizmaların yapılandırılmasına izin verir. Mevcut kimlik doğrulama vektörlerine ilişkin güvenlik analizimizi inceleyin:
| Yöntem | Oltalama (Phishing) Direnci | SIM Değişikliği (SIM-Swap) Güvenlik Açığı | Değerlendirme ve Pratik Kullanım Senaryosu |
|---|---|---|---|
| Passkey'ler / FIDO2 Güvenlik Anahtarları | Mutlak (WebAuthn kaynak bağlama vekil sunucu oltalamasını önler) | Bağışık | ⭐⭐⭐⭐⭐ En İyi Öneri (YubiKey / Touch ID) |
| TOTP Kimlik Doğrulayıcı Uygulaması | Orta (Gerçek zamanlı ters vekil sunuculara karşı savunmasız) | Bağışık | ⭐⭐⭐⭐ Evrensel Temel Standart (Sıfır bağlantı bağımlılığı) |
| GitHub Mobile Anlık Bildirim Onayı | Orta (2 haneli sayı doğrulama istemi gerektirir) | Bağışık | ⭐⭐⭐⭐ Mükemmel Günlük Kullanım Kolaylığı |
| SMS Doğrulama Yedeği | Sıfır (Şifrelenmemiş SS7 sinyalleşmesi, kolayca araya girilebilir) | Yüksek Risk | ⭐ Yüksek Profilli Proje Sahipleri İçin Önerilmez |
Terminal Git İş Akışları: SSH Anahtarları, PAT'ler ve 2FA Etkileşimi
2FA etkinleştirildikten sonra geliştiriciler rutin kod gönderimleri (push) sırasında sıklıkla anında terminal hatalarıyla karşılaşırlar:
fatal: Authentication failed for 'https://github.com/username/repo.git/'
Teknik Gerekçe: Git iletişim protokolü etkileşimli 6 haneli TOTP diyaloglarını işleyemez. Sonuç olarak GitHub, 2FA yürürlükteyken HTTPS Git istekleri için ham hesap parolası doğrulamasını kalıcı olarak devre dışı bırakmıştır.
Açık anahtarlı kriptografi kullanır (önerilen: ed25519). SSH bağlantıları yerel kriptografik özel anahtarlar aracılığıyla kimlik doğrular ve sık sık kimlik bilgisi istemine gerek kalmadan Web 2FA'yı tamamen atlar.
HTTPS aktarımı zorunluysa, kapsamı belirlenmiş bir belirteç oluşturmak için Settings ➔ Developer settings ➔ Personal access tokens yolunu izleyin. Komut satırında (CLI) parola istendiğinde, hesap parolanız yerine PAT'yi yapıştırın.
SSH Commit İmzalama ve Kimlik Doğrulama Farkı: Depoları klonlamak ve göndermek için bir SSH anahtarı kullanmanın, kriptografik commit imzalamadan farklı olduğunu unutmayın. Sıkı 2FA erişim kontrolünün yanı sıra GitHub üzerinde doğrulanmış yazar rozetleri oluşturmak için aynı Ed25519 anahtar çiftini git config commit.gpgsign true ve git config gpg.format ssh komutlarıyla commit'leri imzalamak üzere kullanabilirsiniz.
Felaket Kurtarma: 2FA Olmadan Kilitli Hesapların Kilidini Açma
2FA telefonunuzun kaybolduğu ve kurtarma kodu belgenizin bulunamadığı yıkıcı bir arıza durumunda GitHub son bir kriptografik can simidi sunar: SSH Anahtarı İmza Sorgusu (Challenge).
GitHub TOTP Gizli Anahtarınızı Yerel Olarak Test Edin
Kurulumu onaylamadan önce ham Base32 gizli dizinizi 2FA-Tool içinde test edin. Tüm özetler (hash) sıfır sunucu iletimiyle tarayıcı Web Crypto API üzerinden yerel olarak hesaplanır.
📚 İlgili Güvenlik Rehberleri
Çevrimdışı QR kodları ve Bulut Senkronizasyonu kullanarak 2FA hesaplarını akıllı telefonlar arasında güvenle aktarma.
Google, Microsoft, Steam, Binance, Apple ve Discord hesaplarına erişimi geri kazanma yolları.
RFC 4226'dan RFC 6238'e: Matematiksel özet kırpma, senkronizasyon kaybı ve web'de benimsenme.