Ssh-key का उपयोग करके पासवर्ड के बिना GitHub पर पुश करें


215

मैंने पासवर्ड के बिना SSH कुंजी जोड़ी बनाई और सार्वजनिक कुंजी को GitHub में जोड़ा।

के साथ संपर्क

user@dev:/var/www/project# ssh -T git@github.com
Hi User! You've successfully authenticated, but GitHub does not provide shell access.

सफल रहा और जब मैंने कुंजी का नाम बदला, तो यह विफल हो गया।

लेकिन जब मैं अपने परिवर्तनों को आगे बढ़ाना चाहता हूं, तब भी यह मुझसे मेरा उपयोगकर्ता नाम और पासवर्ड संयोजन मांगता है।

क्या पासवर्ड के बिना पुश करने का कोई तरीका है?


9
सुनिश्चित करें कि आप https://github...अपने रिमोट में उपयोग नहीं कर रहे हैं । उन्हें भी git@github...प्रारूप का पालन करना चाहिए ।
cjc343

जवाबों:


421

यदि यह आपसे उपयोगकर्ता नाम और पासवर्ड के लिए पूछ रहा है , तो आपका मूल रिमोट SSH URL के बजाय HTTPS URL पर इंगित कर रहा है।

इसे ssh में बदलें।

उदाहरण के लिए, GitHub प्रोजेक्ट जैसे Git में HTTPS URL होगा:

https://github.com/<Username>/<Project>.git

और SSH एक:

git@github.com:<Username>/<Project>.git

तुम कर सकते हो:

git remote set-url origin git@github.com:<Username>/<Project>.git

URL बदलने के लिए।


4
इसने इसे हल कर दिया, लेकिन मैं अपने आप से पूछता रहता हूं कि गितुब क्यों आपको सलाह देगा कि आप एक नए रिपॉजिटरी के रिमोट एंड को डिफ़ॉल्ट रूप से http URL पर इंगित करें। मैंने अभी स्क्रैच से एक रिपॉजिटरी बनाई है, और मुझे एक https दूरस्थ URL सेट करने के लिए एक विकल्प के साथ प्रस्तुत किया गया था, एक git नहीं।
प्रेस्क्लेव रचेव

2
यहां एक त्वरित वन-लाइनर शेल कमांड है जो स्वचालित रूप से आपके https url को उपयुक्त गिट एक में बदल देगा (केवल git remote set-url origin $(git remote show origin | grep "Fetch URL" | sed 's/ *Fetch URL: //' | sed 's/https:\/\/github.com\//git@github.com:/')
gubub

11

इसके अलावा gists के लिए, ऐसा लगता है कि आपको उपयोगकर्ता नाम छोड़ना होगा

git remote set-url origin git@gist.github.com:<Project code>

10

यदि आप वास्तव में SSH URL का उपयोग कर रहे हैं, लेकिन अभी भी उपयोगकर्ता और पासवर्ड के लिए कहा जाता है जब git push:

git remote set-url origin git@github.com:<Username>/<Project>.git

आपको इसके साथ समस्या निवारण का प्रयास करना चाहिए:

ssh -vT git@github.com

नीचे नमूना आउटपुट का एक टुकड़ा है:

...
debug1: Trying private key: /c/Users/Yuci/.ssh/id_rsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_dsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_ecdsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).

मैंने वास्तव में पहले ही GitHub में सार्वजनिक कुंजी जोड़ दी है, और मेरे पास स्थानीय रूप से निजी कुंजी भी है। हालाँकि, मेरी निजी कुंजी एक अलग नाम की है /c/Users/Yuci/.ssh/github_rsa

नमूना आउटपुट के अनुसार, Git कोशिश कर रहा है /c/Users/Yuci/.ssh/id_rsa, जो मेरे पास नहीं है। इसलिए, मैं बस कॉपी कर सकता है github_rsaके लिए id_rsaएक ही निर्देशिका में।

cp /c/Users/Yuci/.ssh/github_rsa /c/Users/Yuci/.ssh/id_rsa

अब जब मैं ssh -vT git@github.comफिर से दौड़ता हूँ, मेरे पास है:

...
debug1: Trying private key: /c/Users/Yuci/.ssh/id_rsa
debug1: Authentication succeeded (publickey).
...
Hi <my username>! You've successfully authenticated, but GitHub does not provide shell access.
...

और अब मैं बिना यूजरनेम और पासवर्ड पूछे GitHub पर जोर दे सकता हूं :-)


5

आपको SSH संस्करण का उपयोग करना है , HTTPS का नहीं । जब आप एक भंडार से क्लोन करते हैं, तो SSH संस्करण के साथ लिंक को कॉपी करें , क्योंकि SSH का उपयोग करना आसान है और उपयोग के लिए सभी समस्याओं को हल करता है। आप अपने खाते में हर SSH के लिए इनपुट सेट कर सकते हैं (जैसे पुश, पुल, क्लोन, आदि ...)

यहां एक लिंक दिया गया है, जो कहता है कि हमें SSH की आवश्यकता क्यों है और इसका उपयोग कैसे करें: चरण दर चरण

Git Generate SSH Keys


0

हमेशा की तरह, SSH कुंजी बनाएँ और सार्वजनिक कुंजी को GitHub पर चिपकाएँ। Ssh- एजेंट के लिए निजी कुंजी जोड़ें। (मुझे लगता है कि आपने ऐसा किया है।)

सब कुछ सही है की जाँच करने के लिए, का उपयोग करें ssh -T git@github.com

इसके बाद, दूरस्थ बिंदु को संशोधित करना न भूलें:

git remote set-url origin git@github.com:username/your-repository.git

-4

कमांड लाइन का उपयोग करना:

ls -al ~/.sshयह देखने के लिए दर्ज करें कि क्या मौजूदा SSH कुंजियाँ मौजूद हैं।

टर्मिनल में शो है: कोई निर्देशिका मौजूद नहीं है

फिर एक नई SSH कुंजी उत्पन्न करें

चरण 1।

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

चरण 2।

Enter a file in which to save the key (/Users/you/.ssh/id_rsa): <here is file name and enter the key>

चरण 3।

Enter passphrase (empty for no passphrase): [Type a password]

Enter same passphrase again: [Type password again]

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