- Penerapan Wajib Bersifat Permanen: Pengembang yang tidak mengonfigurasi 2FA sebelum batas waktu yang ditentukan akan diblokir dari aksi antarmuka web dan dicabut hak aksesnya dari repositori organisasi.
- Kode Pemulihan adalah Penyelamat Anda: 16 kode pemulihan yang dihasilkan bersifat sekali pakai. Segera simpan di brankas terenkripsi atau cetak secara fisik untuk penyimpanan offline (cold storage).
- Kata Sandi Akun Git Tidak Lagi Berlaku: Perintah git push melalui HTTPS tidak mendukung dialog interaktif kode TOTP 6 digit. Anda wajib menggunakan Kunci SSH atau Personal Access Token (PAT) dengan izin terperinci.
- Upaya Kriptografis Terakhir: Jika Anda kehilangan ponsel dan kode pemulihan, Anda dapat membuktikan kepemilikan akun dengan menandatangani tantangan identitas menggunakan kunci privat SSH lokal yang telah didaftarkan sebelumnya.
Gambaran Umum Kebijakan 2FA Wajib GitHub & Rasional Keamanan
Secara historis, peretasan kredensial pengembang telah memicu bencana kerentanan rantai pasokan perangkat lunak. Insiden berprofil tinggi—seperti pengambilalihan paket event-stream, ua-parser-js, ctx, dan colors.js di npm dan PyPI—menunjukkan bahwa satu akun pengembang yang dicuri dapat membahayakan ratusan ribu proyek komersial dan infrastruktur penting di hilir.
Penyerang mengumpulkan kredensial menggunakan daftar credential-stuffing global, infrastruktur phishing canggih, dan dependensi pengembang yang disisipi trojan. Karena para insinyur perangkat lunak secara rutin bekerja dengan hak akses root atau administratif ke kode sumber dan jalur deployment CI/CD, pengamanan akun para kontributor kode telah bertransformasi menjadi prioritas keselamatan infrastruktur global.
Menanggapi ancaman ini, GitHub menetapkan kebijakan wajib multifase yang mewajibkan autentikasi dua faktor untuk semua kontributor kode, penerbit paket, pengguna enterprise, dan anggota organisasi:
- Antarmuka web GitHub akan memunculkan modal penguncian wajib, melarang peninjauan pull request, komentar pada issue, serta administrasi repositori hingga penyiapan 2FA selesai.
- Organisasi enterprise yang menegakkan kebijakan 2FA akan mengeluarkan anggota yang tidak patuh secara otomatis, mencabut akses tulis dan izin repositori seketika.
- Jalur workflow otomatis, token penerbitan paket npm, serta izin repositori terperinci akan dibekukan hingga kepatuhan keamanan akun diverifikasi kembali.
Panduan Langkah Demi Langkah: Pemasangan Autentikator TOTP
Meskipun GitHub mendukung SMS, notifikasi aplikasi seluler, dan kunci keamanan perangkat keras, aplikasi Autentikator TOTP standar RFC 6238 (seperti Google Authenticator, Bitwarden, 2FA-Tool) merupakan standar emas berkat independensi vendor dan keandalan penuh saat offline:
Langkah 1: Buka Pengaturan Autentikasi
Masuk ke GitHub. Klik avatar profil Anda di sudut kanan atas ➔ Settings. Pada bilah navigasi kiri di bawah bagian "Access", pilih Password and authentication.
Langkah 2: Pindai Kode QR & Simpan Rahasia Base32 Mentah
GitHub menampilkan kode QR optik bersama tautan teks: "enter this text code instead".
A3J5N2O9...). Simpan di dalam pengelola kata sandi (password manager) terenkripsi Anda. Kunci alfanumerik ini memungkinkan Anda membuat ulang token autentikasi di perangkat mana pun jika ponsel Anda hilang atau rusak.
Langkah 3: Masukkan Kode 6 Digit untuk Konfirmasi
Pindai kode QR dengan aplikasi autentikator Anda. Masukkan 6 digit angka bergulir yang muncul di layar ponsel ke dalam kolom verifikasi GitHub, lalu klik "Continue".
Standar Pengarsipan Kode Pemulihan & Higienitas Kriptografis
Setelah berhasil memasangkan TOTP, GitHub akan langsung menampilkan modal berisi 16 token heksadesimal dengan tanda hubung (misalnya d4a2b-98f12). Menutup modal ini tanpa menyimpan cadangan permanen adalah penyebab utama akun pengembang terkunci secara permanen.
1. Hanya Sekali Pakai: Setiap kode pemulihan akan langsung dibatalkan secara permanen setelah digunakan satu kali sebagai pengganti kode TOTP.
2. Otoritas Tertinggi: Kode pemulihan mengesampingkan perangkat keras yang hilang dan memberikan akses langsung ke akun.
3. Hashing Server Zero-Knowledge: GitHub menyimpan kode-kode ini dalam bentuk hash kriptografis satu arah yang tidak dapat dipulihkan. Tim Dukungan GitHub sama sekali tidak dapat memulihkan atau melihat kode asli Anda dalam kondisi apa pun!
Strategi Tiga Tingkat Penyimpanan Dingin (Cold Storage) yang Direkomendasikan:
Unduh berkas github-recovery-codes.txt dan lampirkan ke entri GitHub Anda di 1Password, Bitwarden, atau KeePassXC yang dilindungi kunci turunan Argon2id.
Simpan berkas teks tersebut ke flashdisk USB offline yang dienkripsi menggunakan VeraCrypt, terpisah dari jaringan lokal dan sinkronisasi cloud.
Cetak salinan di atas kertas, laminasi agar terlindung dari kelembapan, dan simpan di dalam brankas fisik rumah untuk mencegah pencurian melalui info-stealer malware jarak jauh.
Metode Autentikasi Cadangan: SMS vs. Passkey vs. GitHub Mobile
GitHub memungkinkan konfigurasi mekanisme cadangan sekunder. Pelajari perbandingan keamanan di antara metode-metode autentikasi berikut:
| Metode | Ketahanan Phishing | Kerentanan SIM-Swap | Evaluasi & Kasus Penggunaan Praktis |
|---|---|---|---|
| Passkey / Kunci Keamanan FIDO2 | Mutlak (Pengikatan origin WebAuthn mencegah proxy phishing) | Kebal | ⭐⭐⭐⭐⭐ Sangat Direkomendasikan (YubiKey / Touch ID) |
| Aplikasi Autentikator TOTP | Sedang (Rentan terhadap reverse proxy waktu nyata) | Kebal | ⭐⭐⭐⭐ Standar Universal (Bebas ketergantungan koneksi) |
| Persetujuan Push GitHub Mobile | Sedang (Memerlukan verifikasi pencocokan 2 digit angka) | Kebal | ⭐⭐⭐⭐ Sangat Praktis untuk Keseharian |
| Cadangan Verifikasi SMS | Nol (Protokol SS7 tidak terenkripsi, sangat mudah dicegat) | Risiko Tinggi | ⭐ Tidak Disarankan untuk Maintainer Terkemuka |
Alur Kerja Git Terminal: Kunci SSH, PAT & Interaksi 2FA
Setelah mengaktifkan 2FA, pengembang sering kali langsung mengalami kesalahan terminal saat melakukan push kode harian:
fatal: Authentication failed for 'https://github.com/username/repo.git/'
Rasional Teknis: Protokol kawat Git (Git wire protocol) tidak dapat menangani dialog interaktif kode TOTP 6 digit. Oleh karena itu, GitHub secara permanen menonaktifkan autentikasi kata sandi akun untuk permintaan Git HTTPS saat 2FA diberlakukan.
Menggunakan kriptografi kunci publik (sangat direkomendasikan: ed25519). Koneksi SSH mengautentikasi melalui kunci privat lokal dan melewati 2FA Web secara langsung tanpa meminta kredensial berulang kali.
Jika transmisi HTTPS wajib digunakan, buka Settings ➔ Developer settings ➔ Personal access tokens untuk membuat token dengan cakupan terbatas. Saat diminta kata sandi di CLI, tempelkan PAT alih-alih kata sandi akun Anda.
Penandatanganan Commit SSH vs. Autentikasi: Perlu diingat bahwa menggunakan kunci SSH untuk clone dan push repositori berbeda dengan penandatanganan commit secara kriptografis. Anda dapat menggunakan pasangan kunci Ed25519 yang sama untuk menandatangani commit dengan perintah git config commit.gpgsign true dan git config gpg.format ssh, sehingga menghasilkan lencana verified author di GitHub sekaligus mempertahankan kontrol akses 2FA yang ketat.
Pemulihan Bencana: Membuka Akun Terkunci Tanpa 2FA
Dalam skenario kegagalan fatal saat ponsel 2FA Anda hilang dan dokumen kode pemulihan lenyap, GitHub menyediakan satu penyelamat kriptografis terakhir: Tantangan Tanda Tangan Kunci SSH.
Uji Kunci Rahasia TOTP GitHub Anda Secara Lokal
Sebelum menyelesaikan konfigurasi, uji string rahasia Base32 mentah Anda di 2FA-Tool. Semua hash dihitung secara lokal melalui Web Crypto API peramban tanpa transmisi server apa pun.
📚 Panduan Keamanan Terkait
Mentransfer akun 2FA antar-ponsel dengan aman menggunakan kode QR offline dan Sinkronisasi Cloud.
Cara memulihkan akses di Google, Microsoft, Steam, Binance, Apple, dan Discord saat ponsel hilang.
Dari RFC 4226 hingga RFC 6238: pemotongan hash matematis, desinkronisasi, dan adopsi web.