GitHub से Git क्लोन को दो-कारक प्रमाणीकरण के साथ https पर


129

मैंने हाल ही में GitHub पर दो-कारक प्रमाणीकरण का उपयोग करना शुरू किया, और मैं अब सामान्य तरीके से प्राइवेट रेपो पर https पर git का उपयोग करने में असमर्थ हूं:

peter@computer:~$ git clone https://github.com/[...]/MyPrivateRepo
Cloning into 'MyPrivateRepo'...
Username for 'https://github.com': [...]
Password for 'https://[...]@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/[...]/MyPrivateRepo/'

यदि मैं दो-कारक प्रमाणीकरण को अक्षम करता हूं तो मैं इसे पहले की तरह उपयोग कर सकता हूं:

peter@computer:~$ git clone https://github.com/[...]/MyPrivateRepo
Cloning into 'MyPrivateRepo'...
Username for 'https://github.com': [...]
Password for 'https://[...]@github.com': 
remote: Counting objects: 147, done.
remote: Total 147 (delta 0), reused 0 (delta 0), pack-reused 147
Receiving objects: 100% (147/147), 22.70 KiB | 0 bytes/s, done.
Resolving deltas: 100% (87/87), done.
Checking connectivity... done.

मुझे पता है कि मैं SSH और सभी कार्यों का उपयोग कर सकता हूं, लेकिन क्या एक तरीका है कि मैं दो-कारक प्रमाणीकरण रख सकता हूं, जबकि अभी भी HTTPS पर GitHub का उपयोग करने में सक्षम हो सकता है, उदाहरण के लिए मेरे अनुरोध के साथ एक ऑउट टोकन भेजकर?

जवाबों:


155

इसे कैसे ठीक करें, यहां जानें:

https://github.com/blog/1614-two-factor-authentication#how-does-it-work-for-command-line-git

यह कमांड-लाइन गिट के लिए कैसे काम करता है?

यदि आप Git प्रमाणीकरण के लिए SSH का उपयोग कर रहे हैं, तो आराम करें: आपको कुछ भी करने की आवश्यकता नहीं है। यदि आप HTTPS Git का उपयोग कर रहे हैं, तो अपना पासवर्ड दर्ज करने के बजाय, व्यक्तिगत एक्सेस टोकन दर्ज करें। ये आपके निजी एक्सेस टोकन पेज पर जाकर बनाए जा सकते हैं


2
जैसा कि मैंने निम्नलिखित gist में पाया कि आप tonet .netrc फ़ाइल में टोकन जोड़ सकते हैं , प्रमाणीकरण को भी स्वचालित बना सकते हैं।
मार्टिन वूल्स्टहुलमे

1
लेकिन मैं ssh का उपयोग कर रहा हूं, जब github से पुल किया जाता है, तो यह मुझे इनपुट पासवर्ड और उपयोगकर्ता नाम पर भी संकेत देता है, ऐसा क्यों? आपके उत्तर के लिए धन्यवाद!
स्टार्कसंग

3
अभी भी इसके लिए मेरे लिए काम नहीं कर रहा हूँ मैक में प्रवेश टोकन के बाद sudo git क्लोन .... सिस्टम उपयोगकर्ता नाम और पासवर्ड के लिए पूछ रहा है पासवर्ड फ़ील्ड में मैं टोकन दर्ज कर रहा हूं लेकिन यह मेरे लिए काम नहीं कर रहा है। वही त्रुटि
ojus kulkarni

39
अपने उपयोगकर्ता नाम के रूप में अपने टोकन का उपयोग करें और एक खाली पासवर्ड दें।
कोटी स्मित

मैन्युअल रूप से जीथब साइट से टोकन कॉपी करते समय (यानी अगर जीथब कॉपी बटन का उपयोग नहीं किया जाता है) अनुगामी अतिरिक्त स्थान का ध्यान रखें। मुझे यह समझने में थोड़ा समय लगा कि यह मेरे लिए काम क्यों नहीं करता।
गमरगिरी

34

के अनुसार @ Nitsew के जवाब है, आपके बनाएं व्यक्तिगत पहुँच टोकन और अपना उपयोगकर्ता नाम के रूप में अपने टोकन का उपयोग और रिक्त पासवर्ड के साथ प्रवेश करते हैं।

बाद में आपको अपने सभी निजी रेपो (एस) तक पहुंचने के लिए किसी भी क्रेडेंशियल की आवश्यकता नहीं होगी।


आप दूरस्थ सर्वर पर एक्सेस टोकन को संग्रहीत करने की अनुशंसा कहां करेंगे?
bdoubleu

2

संघर्ष करने वाले सभी लोगों के लिए, मेरे लिए जो काम किया गया वह व्यक्तिगत एक्सेस टोकन बना रहा था और फिर इसे यूज़रनेम और पासवर्ड के रूप में उपयोग किया गया (जो तुरंत खोला गया)।


1

यदि आपके रेपो में 2FA सक्षम है। अत्यधिक github.com द्वारा प्रदान किए गए ऐप का उपयोग करने का सुझाव दें। यहां लिंक है: https://desktop.github.com/

आप इसे डाउनलोड करने और स्थापित करने के बाद। विटहार्ड का पालन करें, ऐप आपको लॉगिन के लिए वन टाइम पासवर्ड प्रदान करने के लिए कहेगा। एक बार पासवर्ड भरने के बाद, आप अपने रेपो / प्रोजेक्ट्स को देख सकते हैं।


केवल मदद करता है अगर आप विंडोज़ का उपयोग करते हैं
इयान टर्टन

0

पहला: व्यक्तिगत पहुंच टोकन प्राप्त करें। https://github.com/settings/tokens
2nd: खाता और टोकन डालें। उदाहरण यहाँ है:

$ git push
Username for 'https://github.com':            # Put your GitHub account name
Password for 'https://{USERNAME}@github.com': # Put your Personal access token

व्यक्तिगत पहुंच टोकन बनाने के लिए लिंक: https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.