🐙 Buku Panduan Keselamatan Pembangun ✓ Pematuhan Mandatori

Panduan Lengkap GitHub 2FA: Pengesahan TOTP, Kunci Keselamatan & Kod Pemulihan

Dengan peningkatan serangan rantaian bekalan perisian sumber terbuka di seluruh dunia, GitHub mewajibkan pengesahan dua faktor (2FA) untuk semua pembangun yang menyumbang kod. Malangnya, ribuan jurutera kehilangan akses penuh kepada organisasi dan repositori peribadi mereka setiap bulan akibat mengabaikan kod pemulihan. Panduan teknikal ini merangkumi konfigurasi TOTP, penyimpanan sejuk kod pemulihan, interaksi kunci SSH, dan penyelamatan kecemasan sekiranya terkunci akibat kriptografi.

2FA
Pasukan Kejuruteraan Keselamatan 2FA-Tool
Dikemas Kini Oktober 2026
Anggaran Masa Bacaan: 7 min bacaan (2,400+ patah perkataan)
GitHub 2FA Kod Pemulihan Rantaian Bekalan
💡 Perkara Utama Pembangun (TL;DR)
  • 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.
01

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:

📌 Akibat Terlepas Tarikh Akhir Pendaftaran 2FA
  • 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.
02

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:

1

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.

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

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

💡 Petua Keselamatan Pro: Klik pautan teks tersebut dan salin rentetan rahsia Base32 32 aksara (cth. 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.
3

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

03

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.

🚨 Ciri-ciri Kriptografi Kod Pemulihan

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:

🥇 Lampiran Peti Besi Kata Laluan

Muat turun github-recovery-codes.txt dan lampirkan pada entri GitHub anda dalam 1Password, Bitwarden, atau KeePassXC menggunakan kunci induk terbitan Argon2id.

🥈 Peti Besi Perkakasan Berasingan Udara (Air-Gapped)

Simpan fail teks ke pemacu USB luar talian yang disulitkan VeraCrypt, diputuskan sambungannya daripada rangkaian tempatan dan penyegerak storan awan.

🥉 Cetakan Fizikal Kalis Air

Cetak salinan kertas fizikal, laminate untuk perlindungan kelembapan, dan simpannya di dalam kotak berkunci fizikal rumah untuk bertahan daripada perisian hasad pencuri maklumat.

Amaran Pencegahan Kebocoran Papan Keratan (Clipboard): Apabila menyalin 16 kod pemulihan anda, berhati-hati dengan pengurus sejarah papan keratan (seperti Alfred, Raycast, atau Windows Clipboard History). Kod pemulihan sensitif yang disimpan dalam pangkalan data papan keratan teks biasa boleh diekstrak oleh perisian hasad dengan keistimewaan rendah. Sentiasa kosongkan penimbal papan keratan anda sejurus selepas menampal kelayakan pemulihan anda ke dalam peti besi disulitkan.
04

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
05

Aliran Kerja Git Terminal: Kunci SSH, PAT & Interaksi 2FA

Selepas pengaktifan 2FA, pembangun sering menghadapi ralat terminal semasa melakukan tolakan kod rutin:

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

🔑 Pilihan A: Pengesahan Kunci SSH (Disyorkan)

Menggunakan kriptografi kunci awam (disyorkan: ed25519). Sambungan SSH mengesahkan melalui kunci peribadi kriptografi tempatan dan memintas Web 2FA sepenuhnya tanpa gesaan kelayakan yang kerap.

ssh-keygen -t ed25519 -C "[email protected]"
🎫 Pilihan B: Token Akses Peribadi (PAT)

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.

06

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

1
Mulakan Rayuan Terkunci Akaun Pada gesaan 2FA semasa log masuk, klik "Unable to verify via 2FA?" (Tidak dapat mengesahkan melalui 2FA?) ➔ pilih "Use emergency recovery code" (Gunakan kod pemulihan kecemasan) ➔ jika tiada, klik "Request two-factor authentication reset" (Minta tetapan semula pengesahan dua faktor).
2
Sahkan Kod Sekali Guna E-mel Keselamatan GitHub menghantar PIN pengesahan 6 digit ke alamat e-mel utama anda yang disahkan. Masukkan kod untuk meneruskan ke pengesahan identiti.
3
Laksanakan Cabaran Kunci SSH Terminal Tempatan GitHub menjana rentetan cabaran unik (nonce) dan mengarahkan anda menandatanganinya menggunakan terminal stesen kerja pembangunan tempatan anda:
echo "UniqueChallengeString" | ssh-keygen -Y sign -n "github" -f ~/.ssh/id_ed25519
Tampal blok tandatangan berperisai (armored signature) kembali ke portal web. GitHub mengesahkan secara matematik bahawa tandatangan sepadan dengan kunci awam SSH berdaftar anda, membuktikan pemilikan akaun yang muktamad dan membuka kunci profil anda selepas tempoh semakan.
🔒 Kotak Pasir Kriptografi Sisi Klien

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.

Buka Penjana Dalam Talian