Git मुझे पासवर्ड के लिए संकेत देता है


665

मैं कुछ समय के लिए Git का उपयोग कर रहा हूं, लेकिन पासवर्ड के लिए निरंतर अनुरोध मुझे दीवार पर चढ़ाने लगे हैं।

मैं Mac OS X और GitHub का उपयोग कर रहा हूं, और GitHub के सेट अप गिट पृष्ठ के निर्देशानुसार मैंने Git और मेरे SSH कुंजी सेट किए हैं

मैंने अपने मैक OS X कीचेन में github SSH कुंजी भी जोड़ी है, जैसा कि GitHub के SSH कुंजी पासफ़्रेज़ पृष्ठ पर उल्लिखित है । मेरी सार्वजनिक कुंजी Git के साथ पंजीकृत है।

फिर भी, हर बार जब मैं Git पुल की कोशिश करता हूं, मुझे अपना उपयोगकर्ता नाम और पासवर्ड दर्ज करना होगा। क्या SSH कुंजी के अलावा कुछ और है जिसे मुझे इसके लिए स्थापित करने की आवश्यकता है?


1
मूर्खतापूर्ण सवाल, लेकिन क्या आपने सत्यापित किया है कि एसएसएच कुंजी काम करती है जब बस मशीन को एसआईटी का उपयोग करते हुए?
कर्ट स्टट्समैन

4
आपका मतलब कुछ ऐसा है जैसे ssh -T git@github.com? हाँ, यह ठीक काम करता है (यदि थोड़ा धीमा)।
कैथरीन


Https url के लिए, आप (git1.8.3 + के साथ) git क्रेडेंशियल सहायक ' netrc' का उपयोग कर सकते हैं । एक पूरा उदाहरण यहां देखें ।
VONC

मैं एक Windows उपयोगकर्ता हूं, और सर्वर के अधिकृत_की फ़ाइल में अपनी सार्वजनिक कुंजी जोड़ने के बाद भी मुझे पासवर्ड अनुरोध समस्या का सामना करना पड़ रहा था। क्या वास्तव में समस्या यह थी कि मैं अपनी सार्वजनिक / निजी कुंजी को .ssh फ़ोल्डर के अंतर्गत c: \ program files \ git फ़ोल्डर में नहीं रख रहा था। यदि कोई भी इस तरह के मुद्दे का सामना कर रहा है, तो कृपया इस फ़ोल्डर में अपनी कुंजियों को कॉपी करें और पुश / पुलिंग का प्रयास करें।
राजा आमेर खान

जवाबों:


797

मुझे लगता है कि आपके पास गलत Git रिपॉजिटरी URL हो सकता है।

.git/config[दूरस्थ "मूल"] अनुभाग खोलें और ढूंढें। सुनिश्चित करें कि आप SSH का उपयोग कर रहे हैं:

ssh://git@github.com/username/repo.git

यदि आप क्लोन या डाउनलोड पर क्लिक करते हैं और ssh चुनते हैं, तो आप अपने रिपॉजिटरी के मुख्य पृष्ठ में SSH URL देख सकते हैं ।

और एक httpsया नहीं git:

https://github.com/username/repo.git
git://github.com/username/repo.git

अब आप उपयोगकर्ता नाम और पासवर्ड के बजाय सिर्फ SSH कुंजी के साथ मान्य कर सकते हैं ।

Git कि शिकायत तो 'origin' has already been added, खोल .configफ़ाइल और संपादित url = "..."भाग के बाद [remote origin]के रूप मेंurl = ssh://github/username/repo.git


वही अन्य सेवाओं के लिए जाता है। सुनिश्चित करें कि पता जैसा दिखता है:protocol://something@url

उदाहरण .git/configके लिए Azure DevOps:

[remote "origin"]
    url = https://mystore@dev.azure.com/mystore/myproject/
    fetch = +refs/heads/*:refs/remotes/origin/*

4
यह हो सकता है। जब मैं git को दूरस्थ फोन करता हूं -v मुझे मिलता है: मूल github.com/Foo/Bar.git (fetch) मूल github.com/Foo/Bar.git (पुश) SSH के साथ काम करने के दौरान ऐसा लगता है कि यह होना चाहिए: मूल git @ github.com: Foo / Bar.git (fetch) Origin git@github.com: Foo / Bar.git (पुश) यह हो सकता है क्योंकि मैंने मूल रूप से GitHub के मैक एप्लिकेशन ( mac.githb.com ) का उपयोग करके अपनी परियोजना की जाँच की थी । किसी भी विचार मैं इसे कैसे ठीक कर सकता हूं?
कैथरीन

8
या तो .it / config फ़ाइल में url को ठीक करें, इसे ठीक करने के लिए गिट-रिमोट का उपयोग करें, या अपने स्थानीय रेपो को हटा दें और इसे सही URL के साथ फिर से क्लोन करें।
स्थिर_पृथ्वी

91
बस इसे बाहर वर्तनी के लिए (जैसा कि मुझे इसकी आवश्यकता थी): खुला .git / config और [remote "origin"]अनुभाग सेट में url = ssh://git@github.com/username/Repo.git। मेरे लिए यही काम किया।
ग्रेग के

13
अजीब, @ ग्रेग का समाधान मेरे लिए काम नहीं करता url = git@github.com:organization/Repo.gitथा , लेकिन काम करता था। हालांकि मुझे सही रास्ते पर ले जाने के लिए +1! सफलता!
jmort253

3
मैं पर्याप्त जोर नहीं दे सकता कि ssh: // git @ github / [username] / [nameoname] का उपयोग करके CLONE के लिए यह कितना महत्वपूर्ण है। यदि आप GIT तक पहुँचने के लिए एक कुंजी का उपयोग करना चाहते हैं तो हर बार अपना उपयोगकर्ता नाम और पासवर्ड टाइप न करें। । मैंने इसे ठीक करने का एकमात्र तरीका पाया कि स्थानीय रेपो को हटाकर फिर से $ git क्लोन ssh: // git @ github / [username] / [reponame] .it
Gene Myers

555

क्रेडेंशियल कॉन्फ़िगर करना

OS X (अब macOS) पर, इसे टर्मिनल में चलाएं :

git config --global credential.helper osxkeychain

यह उपयोगकर्ता और पासवर्ड को संग्रहीत करने के लिए और चाबी का गुच्छा से अपने निजी SSH कुंजी को पासफ़्रेज़ को पुनः प्राप्त करने के लिए Git को फ़ाइल Keychain.app का उपयोग करने में सक्षम बनाता है।

विंडोज उपयोग के लिए:

git config --global credential.helper wincred

समस्या निवारण

अगर Git क्रेडेंशियल हेल्पर सही ढंग से कॉन्फ़िगर किया गया है, तो macOS किचेन में पासफ़्रेज़ बचाता है। कभी-कभी एसएसएच और किचेन में संग्रहीत पासफ्रेज के बीच का कनेक्शन टूट सकता है। फिर से चाबी का गुच्छा जोड़ने ssh-add -Kया चलाने के ssh-add ~/.ssh/id_rsaलिए।

macOS v10.12 (सिएरा) ssh में बदलता है

MacOS v10.12 (सिएरा) के लिए, ssh-add -Kहर रिबूट के बाद चलाने की जरूरत है। इससे बचने के लिए, ~/.ssh/configइस सामग्री के साथ बनाएं ।

Host *
   AddKeysToAgent yes
   UseKeychain yes
   IdentityFile ~/.ssh/id_rsa

ssh_config man10.12.2 को पृष्ठ से :

UseKeychain

MacOS पर, यह निर्दिष्ट करता है कि सिस्टम को किसी विशेष कुंजी का उपयोग करने का प्रयास करते समय उपयोगकर्ता के किचेन में पासफ्रेज की खोज करनी चाहिए या नहीं। जब उपयोगकर्ता द्वारा पासफ़्रेज़ प्रदान किया जाता है, तो यह विकल्प भी निर्दिष्ट करता है कि पासफ़्रेज़ को सही होने के लिए सत्यापित किए जाने के बाद किचेन में संग्रहीत किया जाना चाहिए या नहीं। तर्क 'हां' या 'नहीं' होना चाहिए। डिफ़ॉल्ट 'नहीं' है।

Apple ने Technote 2449 जोड़ा है जो बताता है कि क्या हुआ।

MacOS सिएरा से पहले, sshअपने पासफ़्रेज़ के लिए पूछने वाला एक संवाद प्रस्तुत करेगा और इसे किचेन में संग्रहीत करने का विकल्प प्रदान करेगा। इस UI को कुछ समय पहले हटा दिया गया था और हटा दिया गया था।


30
OSX के लिए गिथब एप्लिकेशन (शायद विंडोज के साथ) के बाद से ऐसा करने का यह सबसे अच्छा तरीका है डिफ़ॉल्ट रूप से गिट रिपोज के लिए https पथ का उपयोग करता है। Ssh / git के बजाय https का उपयोग करने का एक अच्छा कारण यह भी है क्योंकि कई कॉर्पोरेट नेटवर्क केवल सुरक्षा कारणों से पोर्ट 80 और 443 पर यातायात की अनुमति देते हैं ।
कोडगुगर

2
क्रेडेंशियल हेल्पर का उपयोग करने के लिए आपको 1.7.10 या नए की आवश्यकता होगी।
जंडई

3
चाबी का गुच्छा समाधान के लिए +1। यह वह जगह है महान मेरे नियोक्ता के Git सर्वर केवल http अपाचे के माध्यम से प्रस्तुत समर्थन करता है और वे दृढ़ता का उपयोग कर प्रोत्साहित नहीं करते क्योंकि मेरे लिए .netrcफ़ाइल विधि है जो प्लेन में अपना पासवर्ड डालता है।
जोश

3
ध्यान दें, मुझे त्रुटि मिली 'credential-osxkeychain' is not a git command.क्योंकि मेरे पास क्रेडेंशियल सहायक स्थापित नहीं था। मैंने इसे स्थापित करने के लिए निर्देशों का पालन किया: help.github.com/articles/set-up-git#password-caching
ह्यूग

2
सिएरा अपडेट के लिए धन्यवाद, मैंने अभी अपडेट किया और यह पता नहीं लगा सका कि जब मैंने git config --global credential.helper osxkeychainअपनी .sshनिर्देशिका में कॉन्फिग फ़ाइल को जोड़ा तो जीथब ने pw के लिए क्यों पूछा ।
पिक्सेल 67

139

यह मेरे साथ तब हुआ जब मैंने macOS v10.12 (सिएरा) में अपग्रेड किया। लगता है कि SSH एजेंट अपग्रेड पर क्लियर हो गया।

$ ssh-add -L
The agent has no identities.

बस चल रही ssh-addहै मेरी मौजूदा पहचान। मैंने पासवर्ड दर्ज किया और फिर से जाने के लिए अच्छा था।


9
सिएरा अपग्रेड से +1 टूट गया। नोट पासवर्ड आपके SSH कुंजी का पासवर्ड है न कि आपका मैक यूजर पासवर्ड।
mbonness

1
Ssh-add करना काम करता है लेकिन टर्मिनल विंडो को बंद करके रीसेट होना प्रतीत होता है। शायद यह एक नया "फीचर" है।
joshd

हेड्स अप - यह फिर से एक और सिएरा अपडेट (10.12.2) के साथ हुआ, लेकिन एक ही फिक्स लागू होता है।
ब्रायन

क्या किसी को पता है कि टर्मिनल बंद होने के बाद इसे कैसे रीसेट नहीं किया जाना चाहिए?
निक्वेलिन

1
मैंने अभी-अभी अपनी मैकबुक प्रो 10.12.2 को अपडेट किया था और इसने मेरी पकड़ को तोड़ दिया। मेरे लिए पूरी तरह से काम किए गए ssh-add का उपयोग करना। धन्यवाद @amcc!
jimmyplaysdrums

68

इसका उपयोग करें: github.com को उपयुक्त होस्टनाम से बदलें

git remote set-url origin git@github.com:user/repo.git

मेरे पास पहले से ही सेट है जब देखने के लिए git remote -v। फिर भी, मुझे अभी भी पासवर्ड के लिए प्रेरित किया जा रहा है।
इगोरगानापोलस्की

वही, मैंने जो भी सुझाया है, उसे निर्धारित किया है, लेकिन मुझे अभी भी पासवर्ड के लिए संकेत मिलता है, मैं इसे कैसे रोकूं?
सायबर 8200

@IgorGanapolsky: क्या आपने कभी आपके लिए कोई समाधान निकाला?
सायबर 8200

1
यह ठीक से काम करता है। यह अजीब बात है कि दूरस्थ URL के साथ git@**क्रेडेंशियल और URL के साथ संकेत नहीं https@**करता है :)। इस प्रकार मुझे यह डॉक्टर मिला ।
सुजीत कुमार सिंह

54

जैसा कि दूसरों ने कहा है, आप एक पासवर्ड कैश हेल्पर इंस्टॉल कर सकते हैं। मैं ज्यादातर अन्य प्लेटफार्मों के लिए लिंक पोस्ट करना चाहता था, और सिर्फ मैक नहीं। मैं एक लिनक्स सर्वर चला रहा हूं और यह मददगार था: GitHub पासवर्ड को Git में कैशिंग करना

मैक के लिए:

git credential-osxkeychain

खिड़कियाँ:

git config --global credential.helper wincred

लिनक्स:

git config --global credential.helper cache
git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)

5
लिनक्स निर्देशों को देखने के लिए मुझे तीसरे उत्तर तक स्क्रॉल करना पड़ा, ये प्राथमिक उत्तर में होना चाहिए क्योंकि यह एक सामान्य रूप से संदर्भित समस्या है।
कोल्डबेन

22

यह भी देखें कि आपको पासफ़्रेज़ के लिए कौन पूछ रहा है। क्या यह Git या आपका SSH एजेंट है?

मेरे मामले में, हर बार जब भी मैंने ऐसा किया, git pullमुझसे पूछ रहा था :

Enter passphrase for key '/work/username/.ssh/id_rsa':

तो मैंने यह मान लिया कि यह Git पासफ़्रेज़ के लिए पूछ रहा है। इसलिए मैं समाधान के लिए शिकार करता रहा, केवल बाद में महसूस किया कि मेरे एसएसएच एजेंट ने बंद कर दिया था। जिसका उपयोग करके तय किया जा सकता है eval $(ssh-agent)और ssh-addजैसा कि यहां दिया गया है।

थोड़ा स्निपेट के नीचे भी चिपकाया जा सकता है जिसे आप अपनी ~/.bashrcफ़ाइल (या समतुल्य) में जोड़ सकते हैं ताकि यह सुनिश्चित हो सके कि आपका एसएसएच एजेंट आपके लॉगिन पर शुरू हो।

किसी भी मामले में यह एक बहुत ही मूर्खतापूर्ण गलती थी जो मैंने की थी, लेकिन इसे यहां पोस्ट करना, बस मामले में यह किसी को गलत पेड़ को भौंकने से बचाने में मदद करता है, जैसे मैंने किया।

# Start the ssh-agent
function start_agent {
    echo "Initializing new SSH agent..."

    # Spawn ssh-agent
    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
    echo succeeded
    chmod 600 ${SSH_ENV}
    . ${SSH_ENV} > /dev/null
    /usr/bin/ssh-add
}

if [ -f "${SSH_ENV}" ]; then
     . ${SSH_ENV} > /dev/null
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
        start_agent;
    }
else
    start_agent;
fi


बहुत यकीन है कि आप ऊपर दिए गए कोड में एक पंक्ति याद कर रहे हैं - जैसे stackoverflow.com/a/18915067/277023 आपके पास होने की आवश्यकता हैSSH_ENV="$HOME/.ssh/environment"
kellyfj

20
git config credential.helper store

नोट: जबकि यह सुविधाजनक है, गिट आपकी परियोजना निर्देशिका ("घर" निर्देशिका के लिए नीचे देखें) के तहत एक स्थानीय फ़ाइल (.git- क्रेडेंशियल्स) में स्पष्ट पाठ में आपके क्रेडेंशियल्स को संग्रहीत करेगा। यदि आपको यह पसंद नहीं है, तो इस फ़ाइल को हटा दें और कैश विकल्प का उपयोग करके स्विच करें।

यदि आप चाहते हैं कि हर बार जब आप दूरस्थ रिपॉजिटरी से कनेक्ट करने की आवश्यकता हो, तो आपको क्रेडेंशियल के लिए पूछने के लिए फिर से शुरू करें, आप इस स्थिति को प्राप्त कर सकते हैं:

git config --unset credential.helper

प्रोजेक्ट निर्देशिका के विपरीत अपनी% HOME% निर्देशिका में .git-क्रेडेंशियल्स पासवर्ड को संग्रहीत करने के लिए: --global ध्वज का उपयोग करें

git config --global credential.helper store

9

Windows पर Git करने के लिए मार्गदर्शिका और धक्का / खींचने के लिए SSH का उपयोग करके GitHub: Windows पर Git के लिए एक इलस्ट्रेटेड गाइड

  1. डाउनलोड करें और PuTTY स्थापित करें
  2. सेट पर्यावरण चर 'GIT_SSH' = 'पथ \ _ to \ plink.exe' (स्थापित पोटीन फ़ोल्डर में) - बहुत महत्वपूर्ण !!!
  3. प्रभावी होने के लिए पर्यावरण चर के लिए Windows Explorer को पुनरारंभ करें (केवल कमांड प्रॉम्प्ट को पुनरारंभ नहीं कर सकता है)
  4. नई कुंजी उत्पन्न करने के लिए puttygen.exe चलाएँ, सार्वजनिक कुंजी को GitHub साइट पर कॉपी करें
  5. इस नई निजी कुंजी को डिस्क पर कहीं सुरक्षित रखें (बेहतर नहीं ड्रॉपबॉक्स )
  6. Putty.exe चलाएं और SSH को github.co से कनेक्ट करें
  7. "शेल: स्टार्टअप" चलाकर जल्दी से स्टार्टअप फ़ोल्डर में पहुंचें।
  8. अपने निजी कुंजी स्टार्टअप को पेजेंट के माध्यम से विंडोज के साथ बनाएं। सिंटैक्स "पथ \" से \ pageant.exe "" पथ \ "टू प्राइवेटकी" के साथ स्टार्टअप फ़ोल्डर में शॉर्टकट बनाएं
  9. हमें 'puttykeyfile' सेटिंग को अंदर सेट करने की आवश्यकता नहीं है। हमारी रिपॉजिटरी की .it / config
  10. बहुत महत्वपूर्ण यह है कि GitHub के "SSH क्लोन URL" का उपयोग किया जाता है न कि HTTPS का।

किसी को भी अब पोटीन का उपयोग नहीं करना चाहिए। अब आप विंडोज 10 उपयोगिताओं में निर्मित के साथ सब कुछ कर सकते हैं। पोटीन चलो, बस पोटीन हो।
इयान स्मिथ

9

Git 1.7.9+ के लिए Windows में, पाठ संपादक में कॉन्फ़िगरेशन फ़ाइल खोलने के लिए कमांड प्रॉम्प्ट पर निम्न कमांड चलाएँ:

    git config --global --edit

फिर फ़ाइल में, निम्न ब्लॉक को जोड़ें यदि मौजूद नहीं है या तदनुसार संपादित करें:

    [credential "https://giturl.com"]
        username = <user id>
         helper = wincred

फ़ाइल को सहेजें और बंद करें। आपको उपरोक्त परिवर्तन के बाद केवल एक बार क्रेडेंशियल्स प्रदान करने की आवश्यकता होगी।


यह सही काम करता है, आपने मेरे घंटों को बचाया, अब मैं अपने काम पर ध्यान केंद्रित कर सकता हूं, बहुत बहुत धन्यवाद भाई।
मोहम्मद सूफियान

9

टाइमआउट की अवधि बढ़ाने के लिए निम्न कमांड का उपयोग करें ताकि आप पासवर्ड को कुछ समय के लिए रोक सकें

git config --global credential.helper 'cache --timeout 3600'

मैंने इसे बिटबकैट और गिटहब के लिए इस्तेमाल किया, यह दोनों के लिए काम करता है। केवल एक चीज जो आपको करने की ज़रूरत है 3600वह सेकंड में है। आप इसे जितना चाहे बढ़ा सकते हैं। मैंने इसे बदल दिया, 259200जो लगभग 30 दिनों का है। इस तरह मैं हर 30 दिन या उसके बाद अपना पासवर्ड दोबारा दर्ज करता हूं।


1
ठीक है, मैंने पाया है कि यह एक पुनः आरंभ करने के बाद नहीं रहता है, इसलिए आपको समय की परवाह किए बिना, पुनरारंभ होने के बाद भी पासवर्ड दर्ज करने की आवश्यकता है ...
बेन वाइंडिंग

यह कैश बनाने का एक अच्छा तरीका है :) कम से कम मेरे समय की बचत हुई। धन्यवाद
ChikuMiku

@BenWinding क्योंकि यह स्मृति में क्रेडेंशियल्स संग्रहीत करता है।
z3dd 8

5

मुझे लगता है कि आपने अपनी समस्या को ठीक कर लिया है, लेकिन मुझे यहाँ समाधान दिखाई नहीं देता जिससे मुझे मदद मिली, इसलिए यहाँ यह है।

टर्मिनल में टाइप करें:

echo "" > ~/.ssh/known_hosts

यह आपकी known_hostsफ़ाइल को खाली कर देगा, और आपको अपने द्वारा उपयोग किए गए प्रत्येक होस्ट को जोड़ना होगा और इससे कनेक्ट करना होगा, लेकिन इसने समस्या को हल कर दिया है।


1
cat /dev/null > ~/.ssh/known_hostsवैसा ही करेंगे।
टिन मैन

5
> ~/.ssh/known_hostsभी छोटा है :)
Collin एलन

rm ~ / .ssh / ज्ञात_होस्ट को भी काम करना चाहिए। मैं हालांकि इसके खिलाफ सलाह दूंगा।
ऑर्कोडेन

3
यदि आपको एक होस्ट को ~ / .ssh / ज्ञात_होस्ट से निकालने की आवश्यकता है, तो फ़ाइल को मिटा देने की तुलना में कम प्रभावशाली तरीका है। ~ / .ssh / ज्ञात_हॉस्ट्स केवल एक पाठ फ़ाइल है और यदि आप फ़ाइल में अपमानजनक होस्ट पा सकते हैं, तो आप बस उनकी लाइनें हटा सकते हैं। आप इसे संपादित करने से पहले फ़ाइल का बैकअप लेना चाह सकते हैं। यदि आपके पास फ़ाइल में केवल कुछ प्रविष्टियाँ हैं, तो इसे मिटा देना एक बुरा विचार नहीं हो सकता है। मैं बहुत सारे सर्वरों पर काम करता हूं इसलिए मेरे ~ / .ssh / ज्ञात_होस्ट्स में सैकड़ों प्रविष्टियाँ हैं और मैं कुछ प्रविष्टियाँ निकालने के लिए उन सभी को हटाने के लिए तैयार नहीं हूँ।
टिम स्टीवर्ट

3
@ जापान यह मेरे पासवर्ड के लिए पूछने से रोक नहीं करता है!
इगोरगानापोलस्की

5

मुझे ऐसा लगता है कि static_rtti द्वारा दिया गया उत्तर कुछ अर्थों में हैकी है। मुझे नहीं पता कि यह पहले उपलब्ध था, लेकिन Git टूल्स अब क्रेडेंशियल स्टोरेज प्रदान करते हैं।

कैश मोड

$ git config --global credential.helper cache

एक निश्चित अवधि के लिए मेमोरी में क्रेडेंशियल्स रखने के लिए "कैश" मोड का उपयोग करें। कोई भी पासवर्ड कभी भी डिस्क पर संग्रहीत नहीं किया जाता है, और उन्हें 15 मिनट के बाद कैश से शुद्ध किया जाता है।

स्टोर मोड

$ git config --global credential.helper 'store --file ~/.my-credentials'

डिस्क पर एक सादा-पाठ फ़ाइल में क्रेडेंशियल्स को बचाने के लिए "स्टोर" मोड का उपयोग करें, और वे कभी भी समाप्त नहीं होते हैं।

मैंने व्यक्तिगत रूप से स्टोर मोड का उपयोग किया । मैंने अपनी रिपॉजिटरी को डिलीट कर दिया, इसे क्लोन कर लिया और फिर एक बार अपनी साख दर्ज करनी पड़ी।

संदर्भ: 7.14 गिट टूल्स - क्रेडेंशियल स्टोरेज


विंडोज के लिए credential.helper cacheकाम नहीं करता है। यह होना चाहिए git config --global credential.helper wincred
पाउलो मर्सन

इसे संग्रहीत करने से काम चल गया और अब यह मुझे हर समय एक पासवर्ड के लिए संकेत दिए बिना अपने परिवर्तनों को करने की अनुमति देता है, आप एक जीवन रक्षक हैं!
15:

लिनक्स में इसने मेरे लिए काम किया git config --local credential.helper store। मेरे मामले में, मैं HTTPS से अधिक हूं, इस तरह से मैं केवल एक बार उपयोगकर्ता नाम / पासवर्ड टाइप करता हूं और उसके बाद, मेरी साख का पुन: उपयोग किया जाता है ~ /
.गित

3

आपके टर्मिनल में गिट के साथ किचेन का उपयोग करने पर ऑर्कोडेन का जवाब अधूरा था और त्रुटियों को उठाता है। टर्मिनल में आपके द्वारा दर्ज किए गए उपयोगकर्ता नाम और पासवर्ड को अपने किचेन में सहेजने के लिए आपको यही करना होगा:

curl http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain -o git-credential-osxkeychain
sudo mv git-credential-osxkeychain /usr/local/bin
sudo chmod u+x /usr/local/bin/git-credential-osxkeychain

फिर दर्ज करें

git config --global credential.helper osxkeychain

यदि आपने कर्ल के सामान से पहले ही गिट कॉन्फ़िगरेशन के साथ हिस्सा कर लिया है, तो यह कोई समस्या नहीं है; यह काम करेंगे।


1
अगर मैं linux पर हूँ तो क्या होगा।
इगोरगानापोलस्की

3

जैसा कि static_rtti ने ऊपर कहा है, परिवर्तन करें

https://github.com/username/repo.git
git://github.com/username/repo.git

सेवा

ssh://git@github.com/username/repo.git

मैंने स्वयं https। Init / config फ़ाइल को बदल दिया है ssh, लेकिन यह अभी भी काम नहीं कर रहा है। फिर मैंने देखा कि आप चाहिए बदलने github.comके लिए git@github.com। वास्तविक सही URL प्राप्त करने का एक अच्छा तरीका यह है कि आप अपने प्रोजेक्ट पेज पर जाएँ और इस पर क्लिक करें:

सही URL पाने के लिए HTTPS को SSH में बदलें

फिर इस URL को कॉन्फ़िगरेशन फ़ाइल में जोड़ें।


मेरे पास मेरे पहले से ही कॉन्फ़िगर फ़ाइल में है और मुझे क्या जाँचना चाहिए?
साइबर cy२००

क्या आपने इसे github.com पर भी बदल दिया?
चेसुसक्रिस्ट

3

लिनक्स के लिए विंडोज सबसिस्टम पर (WSL) यह एकमात्र समाधान था जो मुझे काम करने के लिए मिला:

eval `Ssh-agent` ; ssh-add ~/.ssh/id_rsa

डब्ल्यूएसएल में एसएच-एजेंट के ठीक से पंजीकृत नहीं होने के कारण यह एक समस्या थी।


पूरी तरह से, लेकिन यह वही है जो मेरे मुद्दे को तय करता है।
नाम किम

3

यदि आप Git को अपने GitHub रिपॉजिटरी के लॉगिन क्रेडेंशियल के लिए हमेशा पूछने से रोकना चाहते हैं तो यह आसानी से किया जा सकता है।

HTTPS के बजाय SSH का उपयोग करना

आप HTTPS के बजाय SSH का उपयोग करके मूल रिमोट को अपडेट कर सकते हैं "

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

अपने पासवर्ड और उपयोगकर्ता नाम को स्टोर करने के लिए Git कॉन्फ़िगर करें

यहां बताया गया है कि आप Git को यूजरनेम और पासवर्ड कैसे स्टोर कर सकते हैं:

git config --global credential.helper store

अगला, सत्र के लिए उपयोगकर्ता नाम और पासवर्ड सहेजें:

git config --global credential.helper cache

2

मैं "कोडहुगर" से सहमत हूं और "ऑर्कोडेन" के निर्देश का उपयोग करते हुए इसने मेरे लिए काम किया - नेटबीन्स 7.3 पर - जब आप फ़ाइल पर राइट-क्लिक करते हैं और संदर्भ मेनू का चयन करते हैं - पुश - एक 'पुश टू रिमोट' विंडो खोली - दो हैं यहां विकल्प:

  1. origin:https://github.com/myaccount/myproject.git/

  2. https://github.com/myaccount/myproject.git/

जैसा कि आप देख सकते हैं, अंतर URL में मूल पैरामीटर है - आप इस विकल्प को नहीं चुनना चाहते हैं (1) आप विकल्प (2) की जांच करना चाहते हैं, और यह मेरे लिए ठीक काम करता है।


2

चरण 1: अपने वर्तमान कॉन्फ़िगरेशन की जाँच करें

cat .git/config

तुम्हे मिल जाएगा:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = https://github.com/path_to_your_git.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[user]
    name = your_username
    email = your_email
[branch "master-staging"]
    remote = origin
    merge = refs/heads/master-staging

चरण 2: अपने दूरस्थ मूल को हटा दें

git remote rm origin

चरण 3: अपने उपयोगकर्ता नाम और पासवर्ड के साथ दूरस्थ मूल जोड़ें

git remote add origin https://your_git_username:your_git_password@github.com/path_to_your_git.git

आपके द्वारा दूरस्थ मूल जोड़े जाने के बाद आपको अपनी शाखाओं को दूरस्थ और स्थानीय रूप से भी संरेखित करने की आवश्यकता है - कुछ इस तरह: git branch --set-upstream master origin/master
रिचर्ड बोना

2

अगर GitHub के साथ बातचीत करने के लिए हर बार Git आपको एक उपयोगकर्ता नाम और पासवर्ड के लिए संकेत देता है, तो आप शायद अपने संग्रह के लिए HTTPS क्लोन URL का उपयोग कर रहे हैं।

HTTPS रिमोट URL का उपयोग करने के कुछ फायदे हैं: यह SSH की तुलना में स्थापित करना आसान है, और आमतौर पर सख्त फायरवॉल और प्रॉक्सी के माध्यम से काम करता है। हालांकि, यह आपको हर बार जब आप एक रिपॉजिटरी को खींचते हैं या धक्का देते हैं, तो अपने GitHub क्रेडेंशियल्स में प्रवेश करने के लिए संकेत देते हैं।

आप के लिए अपना पासवर्ड स्टोर करने के लिए Git कॉन्फ़िगर कर सकते हैं। विंडोज के लिए :

git config --global credential.helper wincred

2

MacOS Cataline 10.15 पर चल रहा है, चाबी का गुच्छा कैशिंग विधि मेरे लिए काम नहीं कर रहा था। और मैं उपयोग https://नहीं करना चाहता थाssh

यहाँ मेरे लिए क्या काम किया गया है:

git remote rm origin

git remote add origin https://your_git_username:your_git_password@github.com/path_to_your_git.git

यह गिटलैब पर भी काम करना चाहिए

सुनिश्चित करें कि यदि उपयोगकर्ता नाम में ईमेल पता है, तो @emailभाग को हटाने के लिए या आपको एक त्रुटि बताते हुए मिलेगाURL using bad/illegal format or missing URL

उम्मीद है की यह मदद करेगा!


यह केवल समाधान है कि मेरे लिए काम किया है। आपका_गीत_सुंदरनाम महत्वपूर्ण था। यह वास्तव में जरूरी नहीं था: your_git_password। इस बिंदु पर, भले ही यह अभी भी "पासफ़्रेज़" के लिए कहता है, यह अब खाता पासवर्ड स्वीकार करेगा।
कुलबग्रीन

1

आपके कॉन्फ़िगरेशन के आधार पर विभिन्न प्रकार के प्रमाणीकरण होते हैं। यहाँ कुछ है:

  1. git credential-osxkeychain

    यदि आपका क्रेडेंशियल अमान्य है, तो इसे हटा दें:

      git credential-osxkeychain erase
    

    या:

      printf "protocol=https\nhost=github.com\n" | git credential-osxkeychain erase
    

    इसलिए Git आपसे किचेन की अनुमति फिर से नहीं मांगेगा। फिर इसे फिर से कॉन्फ़िगर करें।

    देखें: GitHub में OS X कीचेन से क्रेडेंशियल्स अपडेट करना

  2. आपका SSH RSA कुंजी

    इसके लिए, आपको अपनी SSH कुंजी की तुलना इस बात से करनी है कि आपने क्या जोड़ा है, जाँच करें ssh-add -L/ ssh-add -lयदि आप सही पहचान का उपयोग कर रहे हैं।

  3. आपका HTTPS प्रमाणीकरण (यदि आप प्रोटोकॉल के httpsबजाय उपयोग कर रहे हैं ssh)।

    अपनी साख प्रदान करने के लिए ~/.netrc( %HOME%/_netrcविंडोज पर) का उपयोग करें , जैसे

      machine stash1.mycompany.com
      login myusername
      password mypassword
    

और जानें: स्टैक ओवरफ्लो में GitHub के साथ सिंक करना




1

यदि आप Windows का उपयोग कर रहे हैं और यह अचानक GitHub पर नीले रंग से बाहर होने लगा है, तो शायद यह GitHub के हाल ही में 2018-02-22 को हटाए गए क्रिप्टोग्राफ़िक एल्गोरिदम के लिए समर्थन अक्षम होने के कारण है , जिस स्थिति में समाधान बस डाउनलोड और इंस्टॉल करना है Windows के लिए पूर्ण Git या Windows के लिए सिर्फ Git क्रेडेंशियल प्रबंधक का नवीनतम संस्करण ।


0

Microsoft स्टैक समाधान (Windows और Azure DevOps)

सबसे पहले पता खोलने के लिए .git/configफ़ाइल खोलें :

protocol://something@url

उदाहरण। Azure DevOps के लिए .it / config:

[remote "origin"]
    url = https://mystore@dev.azure.com/mystore/myproject/
    fetch = +refs/heads/*:refs/remotes/origin/*

समस्या अभी भी बनी रहती है, खुला विंडोज प्रमाणिकता प्रबंधक , नामित safebox पर क्लिक करें विंडोज साख और सभी Git संबंधित साख को हटा दें।

अब अगली बार जब आप git में लॉग इन करेंगे, तो यह और दूर नहीं जाएगा।


0

यदि आपके पास SSH एजेंट स्थापित है, तो आप इसे ~/.gitconfigHTTPS के बजाय सभी GitHub रेपो के लिए SSH का उपयोग करने के लिए बाध्य करने के लिए अपने साथ जोड़ सकते हैं :

[url "ssh://git@github.com/"]
    insteadOf = git://github.com/
    insteadOf = https://github.com/

(यदि आप ज्यादातर सार्वजनिक रेपो के साथ काम कर रहे हैं, तो आप इसके pushInsteadOfबजाय भी उपयोग कर सकते हैं insteadOf, क्योंकि सार्वजनिक रेपो से पढ़ना प्रमाणीकरण के बिना किया जा सकता है)।

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