- अनिवार्य अनुपालन स्थायी है: जो डेवलपर्स अपनी निर्धारित समय सीमा तक 2FA कॉन्फ़िगर करने में विफल रहते हैं, उन्हें वेब क्रियाएं करने से रोक दिया जाता है और संगठन रिपॉजिटरी से हटा दिया जाता है।
- रिकवरी कोड आपकी जीवनरक्षक जैकेट हैं: उत्पन्न 16 रिकवरी कोड एकल-उपयोग (single-use) होते हैं। उन्हें तुरंत किसी एन्क्रिप्टेड वॉल्ट या ऑफ़लाइन भौतिक प्रिंटआउट में संग्रहीत करें।
- Git पासवर्ड अब काम नहीं करते: HTTPS Git पुश इंटरैक्टिव 6-अंकीय कोड स्वीकार नहीं कर सकते। आपको SSH कुंजियाँ (SSH Keys) या स्कोप्ड पर्सनल एक्सेस टोकन (PATs) का उपयोग करना होगा।
- क्रिप्टोग्राफ़िक अंतिम उपाय: यदि आप अपना फोन और कोड खो देते हैं, तो आप अपनी पूर्व-पंजीकृत स्थानीय SSH निजी कुंजी (private key) का उपयोग करके एक पहचान चुनौती पर हस्ताक्षर करके स्वामित्व साबित कर सकते हैं।
GitHub अनिवार्य 2FA नीति का अवलोकन एवं सुरक्षा औचित्य
ऐतिहासिक रूप से, समझौता किए गए डेवलपर क्रेडेंशियल्स ने विनाशकारी सॉफ़्टवेयर आपूर्ति श्रृंखला कमज़ोरियों को जन्म दिया। हाई-प्रोफ़ाइल घटनाएं—जैसे npm और PyPI पर event-stream, ua-parser-js, ctx, और colors.js का अधिग्रहण—ने यह प्रदर्शित किया कि एक चोरी हुआ खाता सैकड़ों-हज़ारों डाउनस्ट्रीम वाणिज्यिक और महत्वपूर्ण बुनियादी ढांचा परियोजनाओं को खतरे में डाल सकता है।
हमलावर वैश्विक क्रेडेंशियल-स्टफ़िंग सूचियों, फ़िशिंग बुनियादी ढांचे और ट्रोजनयुक्त डेवलपर निर्भरताओं का उपयोग करके क्रेडेंशियल एकत्र करते हैं। चूंकि सॉफ़्टवेयर इंजीनियर नियमित रूप से स्रोत कोड और CI/CD परिनियोजन पाइपलाइनों तक रूट या प्रशासनिक पहुंच के साथ काम करते हैं, इसलिए कोड कमिट करने वालों को सुरक्षित करना अंतर्राष्ट्रीय अवसंरचना सुरक्षा का विषय बन गया।
इसके जवाब में, GitHub ने एक बहु-चरणीय सार्वभौमिक अनिवार्यता स्थापित की, जिसमें सभी कोड कमिटर्स, पैकेज प्रकाशकों, एंटरप्राइज़ उपयोगकर्ताओं और संगठन के सदस्यों के लिए टू-फैक्टर प्रमाणीकरण अनिवार्य किया गया:
- GitHub वेब इंटरफ़ेस एक कैप्टिव गेट मोडल में प्रवेश करता है, जो 2FA सेटअप पूरा होने तक पुल अनुरोध (PR) समीक्षा, समस्या टिप्पणी, और रिपॉजिटरी प्रशासन पर रोक लगाता है।
- 2FA लागू करने वाले एंटरप्राइज़ संगठन गैर-अनुपालन सदस्यों को स्वचालित रूप से बाहर निकाल देंगे, जिससे राइट एक्सेस तुरंत समाप्त हो जाएगा और रिपॉजिटरी विशेषाधिकार रद्द हो जाएंगे।
- स्वचालित वर्कफ़्लो पाइपलाइन, npm पैकेज प्रकाशन कुंजियां, और बारीक रिपॉजिटरी अनुमतियां तब तक फ़्रीज़ रहती हैं जब तक कि खाता सुरक्षा अनुपालन प्रमाणित नहीं हो जाता।
चरण-दर-चरण ट्यूटोरियल: TOTP प्रमाणक युग्मन
यद्यपि GitHub SMS, मोबाइल सूचनाओं और हार्डवेयर कुंजियों का समर्थन करता है, RFC 6238 TOTP प्रमाणक ऐप (उदा. Google Authenticator, Bitwarden, 2FA-Tool) विक्रेता स्वतंत्रता और ऑफ़लाइन विश्वसनीयता के लिए स्वर्ण मानक का प्रतिनिधित्व करता है:
चरण 1: प्रमाणीकरण सेटिंग्स पर जाएं
GitHub में लॉग इन करें। ऊपरी-दाएं कोने में अपने प्रोफ़ाइल अवतार ➔ Settings पर क्लिक करें। "Access" के अंतर्गत बाएं नेविगेशन साइडबार में, Password and authentication चुनें।
चरण 2: QR कोड स्कैन करें और कच्चे Base32 सीक्रेट को सुरक्षित रखें
GitHub एक ऑप्टिकल QR कोड के साथ एक टेक्स्ट लिंक प्रस्तुत करता है जिसमें लिखा होता है: "enter this text code instead" (इसके बजाय यह टेक्स्ट कोड दर्ज करें)।
A3J5N2O9...) को कॉपी करें। इसे अपने एन्क्रिप्टेड पासवर्ड मैनेजर में स्टोर करें। यदि आपका फोन नष्ट हो जाता है, तो यह अल्फ़ान्यूमेरिक सीड आपको किसी भी डिवाइस पर प्रमाणीकरण टोकन फिर से प्राप्त करने में सक्षम बनाता है।
चरण 3: पुष्टि करने के लिए 6-अंकीय कोड दर्ज करें
अपने मोबाइल ऑथेंटिकेटर से कोड स्कैन करें। अपनी स्क्रीन पर प्रदर्शित होने वाला रोलिंग 6-अंकीय नंबर GitHub के सत्यापन इनपुट फ़ील्ड में दर्ज करें और "Continue" पर क्लिक करें।
रिकवरी कोड संग्रहण मानक एवं क्रिप्टोग्राफ़िक स्वच्छता
सफल TOTP युग्मन पर, GitHub तुरंत 16 हाइफ़नेटेड हेक्साडेसिमल टोकन (उदा. d4a2b-98f12) के साथ एक मोडल प्रस्तुत करता है। स्थायी बैकअप के बिना इस मोडल को खारिज करना स्थायी डेवलपर खाता लॉकआउट का सबसे आम कारण है।
1. केवल एकल-उपयोग (Single-Use Only): TOTP कोड के स्थान पर पहले उपयोग के बाद प्रत्येक रिकवरी कोड अपरिवर्तनीय रूप से अमान्य हो जाता है।
2. मास्टर अधिकार (Master Authority): एक रिकवरी कोड अनुपलब्ध हार्डवेयर को ओवरराइड करता है और तुरंत खाता पहुंच प्रदान करता है।
3. ज़ीरो-नॉलेज सर्वर हैशिंग: GitHub इन कोड्स को अपरिवर्तनीय वन-वे क्रिप्टोग्राफ़िक हैश के रूप में संग्रहीत करता है। GitHub Support इंजीनियर किसी भी परिस्थिति में आपके मूल कोड पुनर्प्राप्त या पढ़ नहीं सकते हैं!
अनुशंसित त्रि-स्तरीय कोल्ड स्टोरेज रणनीति:
github-recovery-codes.txt डाउनलोड करें और इसे Argon2id-व्युत्पन्न मास्टर कुंजियों का उपयोग करके 1Password, Bitwarden, या KeePassXC में अपनी GitHub प्रविष्टि से जोड़ें।
टेक्स्ट फ़ाइल को स्थानीय नेटवर्क और क्लाउड स्टोरेज सिंक्रनाइज़र से डिस्कनेक्ट की गई VeraCrypt-एन्क्रिप्टेड ऑफ़लाइन USB ड्राइव में सहेजें।
एक भौतिक कागज़ी प्रति प्रिंट करें, इसे नमी से बचाने के लिए लैमिनेट करें, और रिमोट जानकारी-चोरों से बचाव के लिए इसे घरेलू लॉकबॉक्स के अंदर सुरक्षित रखें।
फ़ॉलबैक प्रमाणीकरण विधियाँ: SMS बनाम पासकीज़ बनाम GitHub Mobile
GitHub द्वितीयक फ़ॉलबैक तंत्र कॉन्फ़िगर करने की अनुमति देता है। वर्तमान प्रमाणीकरण माध्यमों में हमारे सुरक्षा विश्लेषण की समीक्षा करें:
| विधि | फ़िशिंग प्रतिरोध | SIM-स्वैप भेद्यता | मूल्यांकन एवं व्यावहारिक उपयोग का मामला |
|---|---|---|---|
| Passkeys / FIDO2 सुरक्षा कुंजियाँ | पूर्ण (WebAuthn मूल बंधन प्रॉक्सी फ़िशिंग को रोकता है) | प्रतिरक्षित (Immune) | ⭐⭐⭐⭐⭐ शीर्ष अनुशंसा (YubiKey / Touch ID) |
| TOTP प्रमाणक ऐप | मध्यम (वास्तविक समय के रिवर्स प्रॉक्सी के प्रति संवेदनशील) | प्रतिरक्षित (Immune) | ⭐⭐⭐⭐ सार्वभौमिक आधार रेखा (शून्य कनेक्टिविटी निर्भरता) |
| GitHub Mobile पुश स्वीकृति | मध्यम (2-अंकीय संख्या सत्यापन संकेत की आवश्यकता है) | प्रतिरक्षित (Immune) | ⭐⭐⭐⭐ उत्कृष्ट दैनिक सुविधा |
| SMS सत्यापन फ़ॉलबैक | शून्य (असुरक्षित SS7 सिग्नलिंग, आसानी से इंटरसेप्ट किया गया) | उच्च जोखिम | ⭐ हाई-प्रोफ़ाइल मेंटेनर्स के लिए अनुशंसित नहीं |
टर्मिनल Git वर्कफ़्लो: SSH कुंजियाँ, PATs एवं 2FA इंटरैक्शन
2FA सक्रियण के बाद, डेवलपर्स को नियमित कोड पुश के दौरान अक्सर तत्काल टर्मिनल त्रुटियों का सामना करना पड़ता है:
fatal: Authentication failed for 'https://github.com/username/repo.git/'
तकनीकी औचित्य: Git वायर प्रोटोकॉल इंटरैक्टिव 6-अंकीय TOTP संवादों को संभाल नहीं सकता है। नतीजतन, 2FA प्रभावी होने पर GitHub ने HTTPS Git अनुरोधों के लिए सीधे खाता पासवर्ड प्रमाणीकरण को स्थायी रूप से निष्क्रिय कर दिया।
पब्लिक-की क्रिप्टोग्राफी का उपयोग करता है (अनुशंसित: ed25519)। SSH कनेक्शन स्थानीय क्रिप्टोग्राफ़िक निजी कुंजियों के माध्यम से प्रमाणित होते हैं और बार-बार क्रेडेंशियल संकेतों के बिना वेब 2FA को पूरी तरह से बायपास करते हैं।
यदि HTTPS ट्रांसपोर्ट अनिवार्य है, तो स्कोप्ड टोकन जनरेट करने के लिए Settings ➔ Developer settings ➔ Personal access tokens पर जाएं। CLI में पासवर्ड मांगे जाने पर, अपने खाते के पासवर्ड के स्थान पर PAT पेस्ट करें।
SSH कमिट साइनिंग बनाम प्रमाणीकरण: ध्यान दें कि रिपॉजिटरी को क्लोन और पुश करने के लिए SSH कुंजी का उपयोग करना क्रिप्टोग्राफ़िक कमिट साइनिंग से अलग है। आप git config commit.gpgsign true और git config gpg.format ssh के साथ कमिट पर हस्ताक्षर करने के लिए उसी Ed25519 कुंजी युग्म का उपयोग कर सकते हैं, जिससे सख्त 2FA पहुंच नियंत्रण के साथ-साथ GitHub पर सत्यापित लेखक बैज उत्पन्न होते हैं।
आपदा रिकवरी: 2FA के बिना लॉक किए गए खाते अनलॉक करना
किसी बड़ी विफलता की स्थिति में जहां आपका 2FA फोन चला गया है और आपका रिकवरी कोड दस्तावेज़ खो गया है, GitHub एक अंतिम क्रिप्टोग्राफ़िक जीवनरक्षक प्रदान करता है: SSH कुंजी हस्ताक्षर चुनौती (The SSH Key Signature Challenge)।
अपने GitHub TOTP सीक्रेट का स्थानीय रूप से परीक्षण करें
सेटअप करने से पहले, 2FA-Tool में अपने कच्चे Base32 गुप्त स्ट्रिंग का परीक्षण करें। शून्य सर्वर ट्रांसमिशन के साथ सभी हैश स्थानीय रूप से ब्राउज़र Web Crypto के माध्यम से परिकलित होते हैं।
📚 संबंधित सुरक्षा गाइड
ऑफ़लाइन QR कोड और Cloud Sync का उपयोग करके स्मार्टफ़ोन पर 2FA खातों को सुरक्षित रूप से स्थानांतरित करना।
Google, Microsoft, Steam, Binance, Apple और Discord पर पहुंच कैसे पुनर्प्राप्त करें।
RFC 4226 से RFC 6238: गणितीय हैश ट्रंकेशन, डिसिंक्रनाइज़ेशन और वेब अनुकूलन।