सूक्ति-कीरिंग और http (s) रेपो के साथ git का उपयोग करने का सही तरीका क्या है?


43

वर्तमान में, जब भी मैं git pullया git pushएक http (एस) रिपॉजिटरी में, मुझे निम्नलिखित मिलते हैं:

$ git pull
Username for 'https://gitrepos.reposdomain.com': me@mydomain.com
Password for 'https://me@mydomain.com@gitrepos.reposdomain.com': 

यह निराला उपयोग के लिए ठीक है, लेकिन वास्तव में बहुत जल्दी परेशान होने लगता है। दुर्भाग्य से, ssh पर स्विच करना इस मामले में एक विकल्प नहीं है।

मैंने पढ़ा है कि gitएक "स्टोर" और "कैश" प्रदान करने के पहले के संस्करण , लेकिन यह सलाह नहीं दी गई क्योंकि यह पासवर्ड को प्लेटेक्स्ट में संग्रहीत करता है।

परंतु

gitजाहिरा तौर पर स्टोर किए गए नए संस्करणों में साख को जमा किया जाता है gnome-keyring, लेकिन इसे सही तरीके से सेट करना होता है।

मैंने एसओ पर अन्य (गैर-उबंटू) उत्तर का पालन करने की कोशिश की है ताकि इसे काम करने के लिए (अर्थात् यह एक ) मिल जाए, लेकिन मुझे अभी भी उपयोगकर्ता नाम और पासवर्ड संकेत के साथ प्रस्तुत किया गया है।

gitHttp (s) रेपो के लिए क्रेडेंशियल्स को स्टोर करने का सही और सबसे सुरक्षित तरीका क्या है और कोई उन्हें उबंटू पर कैसे काम करता है?


आपको यह उल्लेख करना चाहिए कि आपने किन तरीकों की कोशिश की। अन्यथा आपको उत्तर वही मिल सकते हैं जो आपको सुझाव दे।
मुरु

@ एमआरयू ने पठनीयता के लिए मेरे द्वारा जोड़े गए जोर को क्यों हटाया है? अब यह केवल पाठ की एक बूँद है और ऐसे कारण हैं जो दूसरों से प्रश्न को अलग करते हैं और वास्तविक प्रश्न कम स्पष्ट है।
टु-रिइंस्टेट मोनिका-डोर डुह

बोल्ड और इटैलिक किया गया एक पूरा वाक्य शायद ही पठनीय हो।
मुरु १

1
@ ममरू मैं अलग होने की भीख माँगता हूँ। मुझे लगता है कि बोल्ड और इटैलिकाइज़्ड टेक्स्ट प्रश्न के आवश्यक भागों को सामने लाता है।
टु-रिइंस्टेट मोनिका-डोर डुह

जवाबों:


45

gnome-credential-helper अब पदावनत हो गया है।

इसके बजाय, libsecret का उपयोग करें। यदि यह आपके ubuntu में पहले से निर्मित नहीं है, तो निम्नलिखित प्रक्रिया का उपयोग करें:

  1. आप स्थापित कर सकते हैं libsecretऔर विकास पुस्तकालयों के साथ:

    sudo apt-get install libsecret-1-0 libsecret-1-dev

  2. फिर आपको क्रेडेंशियल मैनेजर बनाने की आवश्यकता है

    cd /usr/share/doc/git/contrib/credential/libsecret

    sudo make

  3. अंत में, आप इंगित करना चाहिए Git अपने config में नई बनाई गई फ़ाइल के लिए:

    git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret

Https://stackoverflow.com/a/40312117/2017781 पर अधिक जानकारी


1
आप ध्यान देना चाहते हैं कि यह समाधान केवल git संस्करणों पर लागू होता है> = 2.11 (जहाँ libsecret dir तब पाया जा सकता है)
चार्ल्स रॉबर्टो Canato

1
क्या यह सुरक्षित है? रहस्य कहाँ संग्रहीत हैं? क्या ट्रांसमिशन और स्टोरेज दोनों सुरक्षित हैं? क्या कोई आधिकारिक दस्तावेज है? जाहिर है, इस पृष्ठ और इस पृष्ठ के अनुसार , यह "मुख्य" में है और डेबियन / उबंटू द्वारा बनाए रखा गया है। और: "यह DBus का उपयोग कर 'सीक्रेट सर्विस' के साथ संचार।"
कांव-कांव

1
@caw: गनोम में, "सीक्रेट सर्विस" एक ही gnome-keyring-daemon है, बस एक अलग एपीआई के माध्यम से। (Libsecret योजना अन्य DEs को उसी API का समर्थन करते हुए अपने स्वयं के बैकएंड बनाने की अनुमति देने की थी, जैसे KDE ने kwalletd में इसे लागू करने की योजना बनाई।)
grawity

5
मेरे पसंदीदा उत्तर को अपडेट करना क्योंकि मैं 18.04 को इस काम को सत्यापित कर सकता हूं। :)
tu-Reinstate Monica-dor duh

44

आपको credential helperGnome Keyring के साथ git सेटअप करने की आवश्यकता है :

Gnome Keyring devel को संस्थापित और संकलित करें:

sudo apt-get install libgnome-keyring-dev
sudo make --directory=/usr/share/doc/git/contrib/credential/gnome-keyring

और क्रेडेंशियल सेटअप करें:

git config --global credential.helper /usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring

यह वास्तव में अजीब है। शब्दार्थ, लिंक में उत्तर और इस उत्तर में कोई अंतर नहीं होना चाहिए। लेकिन किसी कारण से यह जवाब काम करता है जहां दूसरा नहीं करता है।
tu-Reinstate Monica-dor duh

फिर चलाएं git pushया git pullसामान्य रूप में और पहली बार यह ansd स्टोर से पूछेगा, और उसके बाद हर बार यह कीरिंग से मिलेगा। इसे सत्यापित करने के लिए, चलाएं seahorse। इसे "पासवर्ड" -> "लॉगिन" के तहत सूचीबद्ध किया जाना चाहिए।
tu-Reinstate Monica-dor duh

@tudor यह अजीब है, मुझे अपने उत्तर और लिंक एक के बीच कोई "वैचारिक" अंतर दिखाई नहीं देता है। खुशी है कि यह मदद करता है।

मेरे लिए अजीब लगता है कि आपको अभी भी "मेक" कमांड चलाना है, लेकिन ये चरण महान काम करते हैं। धन्यवाद!
डेविसिस्टिस्ट

2

यह सरल तरीका मेरे Ubuntu 18.04.1 पर git 2.17.1 के साथ पर्याप्त प्रतीत होता है:

git config --global credential.helper cache

आप एक घंटे (= 3600 सेकंड) को इस तरह से निर्दिष्ट कर सकते हैं:

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

इसके अलावा ठीक मैनुअल में पढ़ना ।

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