- Penguatkuasaan Mandatori adalah Kekal: Pembangun yang gagal mengkonfigurasi 2FA sebelum tarikh akhir yang dijadualkan akan disekat daripada melakukan tindakan web dan disingkirkan daripada repositori organisasi.
- Kod Pemulihan adalah Jaket Keselamatan Anda: 16 kod pemulihan yang dijana adalah untuk sekali guna. Simpan ia di dalam peti besi disulitkan atau cetakan fizikal sejuk luar talian serta-merta.
- Kata Laluan Git Tidak Lagi Berfungsi: Arahan push Git melalui HTTPS tidak boleh menerima kod interaktif 6 digit. Anda mesti menggunakan Kunci SSH atau Token Akses Peribadi (PAT) dengan skop khusus.
- Jalan Terakhir Kriptografi: Jika anda kehilangan telefon dan kod anda, anda boleh membuktikan pemilikan akaun dengan menandatangani cabaran identiti menggunakan kunci peribadi SSH tempatan anda yang telah didaftarkan sebelum ini.
Gambaran Keseluruhan Polisi Mandatori GitHub 2FA & Rasional Keselamatan
Dari segi sejarah, kelayakan pembangun yang terjejas telah mencetuskan kerentanan rantaian bekalan perisian yang membawa bencana. Insiden berprofil tinggi—seperti perampasan event-stream, ua-parser-js, ctx, dan colors.js di npm dan PyPI—menunjukkan bahawa satu akaun yang dicuri mampu membahayakan ratusan ribu projek komersial dan infrastruktur kritikal hiliran.
Penyerang mengumpulkan kelayakan menggunakan senarai pemadatan kelayakan global (credential stuffing), infrastruktur pancingan data (phishing), dan kebergantungan pembangun bertrojan. Memandangkan jurutera perisian secara rutin beroperasi dengan akses pentadbiran atau root kepada kod sumber dan talian paip penggunaan CI/CD, mengamankan penyumbang kod telah menjadi isu keselamatan infrastruktur antarabangsa.
Sebagai tindak balas, GitHub telah menetapkan mandat universal berperingkat yang memerlukan pengesahan dua faktor bagi semua penyumbang kod, penerbit pakej, pengguna perusahaan, dan ahli organisasi:
- Antara muka web GitHub memasuki mod sekatan modal berpagar, melarang semakan pull request, ulasan isu, dan pentadbiran repositori sehingga persediaan 2FA selesai.
- Organisasi perusahaan yang menguatkuasakan 2FA akan mengeluarkan ahli yang tidak patuh secara automatik, melucutkan akses tulis dan membatalkan keistimewaan repositori dengan serta-merta.
- Talian paip aliran kerja automatik, kunci penerbitan pakej npm, dan kebenaran repositori terperinci dibekukan sehingga kepatuhan keselamatan akaun disahkan.
Tutorial Langkah demi Langkah: Penyandingan Pengesah TOTP
Walaupun GitHub menyokong SMS, pemberitahuan mudah alih, dan kunci perkakasan, aplikasi Pengesah TOTP RFC 6238 (cth. Google Authenticator, Bitwarden, 2FA-Tool) mewakili piawaian emas untuk kebebasan vendor dan kebolehpercayaan luar talian:
Langkah 1: Navigasi ke Tetapan Pengesahan
Log masuk ke GitHub. Klik avatar profil anda di sudut atas kanan ➔ Settings. Dalam bar sisi navigasi kiri di bawah "Access", pilih Password and authentication.
Langkah 2: Imbas Kod QR & Simpan Rahsia Base32 Mentah
GitHub memaparkan kod QR optik bersebelahan dengan pautan teks: "enter this text code instead" (masukkan kod teks ini sebaliknya).
A3J5N2O9...). Simpan di dalam pengurus kata laluan disulitkan anda. Benih alfanumerik ini membolehkan anda menerbitkan semula token pengesahan pada mana-mana peranti jika telefon anda rosak.
Langkah 3: Masukkan Kod 6 Digit untuk Mengesahkan
Imbas kod menggunakan aplikasi pengesah mudah alih anda. Masukkan 6 digit angka bergulir yang dipaparkan pada skrin anda ke dalam medan input pengesahan GitHub dan klik "Continue" (Teruskan).
Piawaian Pengarkiban Kod Pemulihan & Kebersihan Kriptografi
Selepas berjaya memadankan TOTP, GitHub serta-merta memaparkan tetingkap modal dengan 16 token heksadesimal bertanda sempang (cth. d4a2b-98f12). Menutup modal ini tanpa sandaran kekal adalah punca tunggal paling biasa pembangun terkunci daripada akaun secara kekal.
1. Sekali Guna Sahaja: Setiap kod pemulihan dibatalkan secara kekal selepas penggunaan pertamanya sebagai ganti kod TOTP.
2. Kuasa Induk: Kod pemulihan mengatasi ketiadaan peranti perkakasan dan memberikan akses akaun serta-merta.
3. Cincangan Pelayan Sifar Pengetahuan: GitHub menyimpan kod-kod ini sebagai cincangan kriptografi satu hala yang tidak dapat diterbalikkan. Jurutera Sokongan GitHub tidak dapat memulihkan atau melihat kod asal anda dalam apa jua keadaan!
Strategi Penyimpanan Sejuk Tiga Peringkat yang Disyorkan:
Muat turun github-recovery-codes.txt dan lampirkan pada entri GitHub anda dalam 1Password, Bitwarden, atau KeePassXC menggunakan kunci induk terbitan Argon2id.
Simpan fail teks ke pemacu USB luar talian yang disulitkan VeraCrypt, diputuskan sambungannya daripada rangkaian tempatan dan penyegerak storan awan.
Cetak salinan kertas fizikal, laminate untuk perlindungan kelembapan, dan simpannya di dalam kotak berkunci fizikal rumah untuk bertahan daripada perisian hasad pencuri maklumat.
Kaedah Pengesahan Sandaran: SMS vs. Passkey vs. GitHub Mobile
GitHub membenarkan konfigurasi mekanisme sandaran sekunder. Semak analisis keselamatan kami merentas vektor pengesahan semasa:
| Kaedah | Ketahanan Pancingan Data | Kerentanan Pertukaran SIM | Penilaian & Kes Penggunaan Praktikal |
|---|---|---|---|
| Passkey / Kunci Keselamatan FIDO2 | Mutlak (Pengikatan asal WebAuthn menghalang pancingan data proksi) | Kebal | ⭐⭐⭐⭐⭐ Cadangan Teratas (YubiKey / Touch ID) |
| Aplikasi Pengesah TOTP | Sederhana (Rentan kepada proksi songsang masa nyata) | Kebal | ⭐⭐⭐⭐ Garis Asas Universal (Sifar pergantungan keterhubungan) |
| Kelulusan Tolak GitHub Mobile | Sederhana (Memerlukan gesaan pengesahan nombor 2 digit) | Kebal | ⭐⭐⭐⭐ Kemudahan Harian yang Hebat |
| Sandaran Pengesahan SMS | Sifar (Pensyinyalan SS7 tidak disulitkan, mudah dipintas) | Risiko Tinggi | ⭐ Tidak Disyorkan untuk Penyenggara Berprofil Tinggi |
Aliran Kerja Git Terminal: Kunci SSH, PAT & Interaksi 2FA
Selepas pengaktifan 2FA, pembangun sering menghadapi ralat terminal semasa melakukan tolakan kod rutin:
fatal: Authentication failed for 'https://github.com/username/repo.git/'
Rasional Teknikal: Protokol wayar Git tidak dapat mengendalikan dialog interaktif TOTP 6 digit. Akibatnya, GitHub telah menyahaktifkan pengesahan kata laluan akaun mentah secara kekal bagi permintaan Git HTTPS apabila 2FA berkuat kuasa.
Menggunakan kriptografi kunci awam (disyorkan: ed25519). Sambungan SSH mengesahkan melalui kunci peribadi kriptografi tempatan dan memintas Web 2FA sepenuhnya tanpa gesaan kelayakan yang kerap.
Jika pengangkutan HTTPS diperlukan, navigasi ke Settings ➔ Developer settings ➔ Personal access tokens untuk menjana token berskop. Apabila diminta kata laluan dalam CLI, tampal PAT dan bukannya kata laluan akaun anda.
Menandatangani Komitmen SSH vs. Pengesahan: Ambil perhatian bahawa menggunakan kunci SSH untuk mengklon dan menolak repositori adalah berbeza daripada menandatangani komitmen (commit signing) secara kriptografi. Anda boleh menggunakan pasangan kunci Ed25519 yang sama untuk menandatangani komitmen dengan git config commit.gpgsign true dan git config gpg.format ssh, menghasilkan lencana pengarang disahkan (Verified) di GitHub bersama kawalan akses 2FA yang ketat.
Pemulihan Bencana: Membuka Kunci Akaun Terkunci Tanpa 2FA
Sekiranya berlaku kegagalan teruk di mana telefon 2FA anda tiada dan dokumen kod pemulihan anda hilang, GitHub menawarkan satu jaket keselamatan kriptografi terakhir: Cabaran Tandatangan Kunci SSH (SSH Key Signature Challenge).
Uji Rahsia TOTP GitHub Anda Secara Tempatan
Sebelum menyelesaikan persediaan, uji rentetan rahsia Base32 mentah anda dalam 2FA-Tool. Semua cincangan dikira secara setempat melalui Web Crypto penyemak imbas tanpa penghantaran ke pelayan.
📚 Panduan Keselamatan Berkaitan
Memindahkan akaun 2FA merentas telefon pintar dengan selamat menggunakan kod QR luar talian dan Penyegerakan Awan.
Cara memulihkan akses merentas Google, Microsoft, Steam, Binance, Apple, dan Discord.
RFC 4226 ke RFC 6238: Pemotongan cincangan matematik, penyahsegerakan, dan penerimaan web.