🐙 Geliştirici Güvenlik El Kitabı ✓ 2026 için Doğrulandı

GitHub 2FA Kurulumu, SMS Yedeklemesi ve Kurtarma Kodları İçin Eksiksiz Rehber

Açık kaynaklı yazılım tedarik zinciri saldırılarının dünya çapında hız kazanmasıyla birlikte GitHub, katkıda bulunan tüm geliştiriciler için iki faktörlü kimlik doğrulamayı (2FA) zorunlu kılmaktadır. Ne yazık ki her ay binlerce mühendis, ihmal edilen kurtarma kodları nedeniyle organizasyonlarına ve özel depolarına erişimini tamamen kaybetmektedir. Bu teknik rehber; TOTP yapılandırmasını, soğuk kurtarma kodu arşivlemesini, SSH anahtarı etkileşimlerini ve acil durum kriptografik kilitlenme kurtarma işlemlerini kapsar.

2FA
2FA-Tool Güvenlik Ekibi
Ekim 2026'da Güncellendi
Tahmini Okuma Süresi: 13 dk (2.400+ kelime)
GitHub 2FA Kurtarma Kodları Tedarik Zinciri
💡 Geliştiriciler İçin Önemli Çıkarımlar (Özet)
  • 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.
01

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:

📌 2FA Kayıt Son Tarihini Kaçırmanın Sonuçları
  • 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.
02

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:

1

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.

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

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.

💡 Profesyonel Güvenlik İpucu: Metin bağlantısına tıklayın ve 32 karakterlik Base32 gizli dizisini (örn. 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.
3

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.

03

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.

🚨 Kurtarma Kodlarının Kriptografik Özellikleri

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:

🥇 Parola Kasası Eki

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.

🥈 Hava Boşluklu (Air-Gapped) Donanım Kasası

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.

🥉 Su Geçirmez Fiziksel Çıktı

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.

Pano (Clipboard) Sızıntısını Önleme Uyarısı: 16 kurtarma kodunuzu kopyalarken pano geçmişi yöneticilerine (Alfred, Raycast veya Windows Pano Geçmişi gibi) dikkat edin. Düz metin pano veritabanlarında saklanan hassas kurtarma kodları, düşük ayrıcalıklı kötü amaçlı yazılımlar tarafından sızdırılabilir. Kurtarma kimlik bilgilerinizi şifreli kasanıza yapıştırdıktan hemen sonra pano arabelleğinizi mutlaka temizleyin.
04

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
05

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:

remote: Support for password authentication was removed on August 13, 2021.
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.

🔑 Seçenek A: SSH Anahtarı ile Kimlik Doğrulama (Önerilen)

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.

ssh-keygen -t ed25519 -C "[email protected]"
🎫 Seçenek B: Kişisel Erişim Belirteçleri (PAT)

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.

06

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).

1
Hesap Kilitlenme İtirazını Başlatın Giriş sırasındaki 2FA isteminde "Unable to verify via 2FA?" (2FA ile doğrulanamıyor mu?) bağlantısına tıklayın ➔ "Use emergency recovery code" (Acil durum kurtarma kodunu kullan) seçeneğini belirleyin ➔ mevcut değilse "Request two-factor authentication reset" (İki faktörlü kimlik doğrulama sıfırlaması iste) üzerine tıklayın.
2
Güvenlik E-postası Tek Kullanımlık Kodunu Doğrulayın GitHub, birincil doğrulanmış e-posta adresinize 6 haneli bir onay PIN kodu gönderir. Kimlik doğrulama adımına geçmek için kodu girin.
3
Yerel Terminal SSH Anahtarı Sorgusunu Çalıştırın GitHub benzersiz bir sorgu sayısı (nonce) oluşturur ve bunu yerel geliştirici iş istasyonu terminalinizi kullanarak imzalamanızı ister:
echo "UniqueChallengeString" | ssh-keygen -Y sign -n "github" -f ~/.ssh/id_ed25519
Zırhlı (armored) imza bloğunu web portalına geri yapıştırın. GitHub, imzanın kayıtlı SSH açık anahtarınızla eşleştiğini matematiksel olarak doğrular, kesin hesap sahipliğini kanıtlar ve bir inceleme süresinin ardından profilinizin kilidini açar.
🔒 İstemci Tarafı Kriptografik Kum Havuzu

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.

Çevrimiçi Oluşturucuyu Aç