सूक्ति-कीरिंग एकीकरण के साथ गिट का उपयोग कैसे करें


129

जीआईटी 1.8.0 सूक्ति-कीरिंग के साथ एकीकरण का समर्थन करता है।

http://www.h-online.com/open/news/item/Git-1-8-0-can-access-Windows-and-GNOME-keyrings-1733879.html

Git क्रेडेंशियल हेल्पर्स के बारे में डॉक्स पढ़ने के बाद: http://git-scm.com/docs/gitcredentials.html

मुझे इस नई सुविधा का उपयोग करने का तरीका नहीं मिल रहा था। मैं इसे कैसे एकीकृत कर सकता हूं? मैं आर्कलिनक्स के भंडार से स्थापित गिट के साथ आर्कलिनक्स का उपयोग कर रहा हूं। (git 1.8.0)

जवाबों:


193

@ marcosdsanchez का उत्तर आर्क (जो मूल प्रश्न का उत्तर देता है) के लिए है, लेकिन मैं उबंटू पर हूं। Git> = 2.11 के लिए:

sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret

Git <2.11 के लिए:

sudo apt-get install libgnome-keyring-dev
cd /usr/share/doc/git/contrib/credential/gnome-keyring
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring

9
मैं पहले ऐसा करने में संकोच कर रहा था, लेकिन मैंने आखिरकार किया और यह पूरी तरह से काम करता है। जैसा कि gitcredentials के लिए डॉक्स कहते हैं, आप भी कर सकते हैं git help -a | grep credential-और देखें कि क्या आपके पास अन्य हेल्पर्स स्थापित हैं। डिफ़ॉल्ट रूप से आने वाले लोग credential-cache(आपके द्वारा दर्ज किए जाने के कुछ समय बाद तक पासवर्ड याद रखें, डिफ़ॉल्ट रूप से 15 मिनट), और credential-store(बस ~/.git-credentialsडिफॉल्ट रूप से डिस्क पर एक अनएन्क्रिप्टेड फ़ाइल पर पासवर्ड को स्टोर करें )।
श्रीवत्सआर

51
क्या कोई समझा सकता है कि इसे मैन्युअल रूप से संकलित करने की आवश्यकता क्यों है और पैकेज के माध्यम से डिफ़ॉल्ट रूप से उपलब्ध नहीं है?
लालनॉक्स

4
Ubuntu 14.04 LTS में काम किया!
यूजीन कुलबुहोव

4
बस chmod 0755 git-credential-gnome-keyringरूट की तुलना में दूसरों को निष्पादन की अनुमति जोड़ने के लिए करना था
लारी होटारी

8
उबंटू 16.04 एलटीएस के लिए अभी भी मान्य है
यूजीन कुलबुहोव

54

जीआईटी 1.8.0 सूक्ति-कीरिंग समर्थन के साथ आता है लेकिन बाइनरी को आपके प्लेटफॉर्म के लिए संकलित करने की आवश्यकता है।

यह वही है जो मेरे लिए Archlinux में हल किया गया है:

$ sudo pacman -S libgnome-keyring
$ cd /usr/share/git/credential/gnome-keyring
$ make
$ git config --global credential.helper /usr/share/git/credential/gnome-keyring/git-credential-gnome-keyring

@VonC समाधान करीब था, लेकिन git config कमांड निष्पादन योग्य की ओर इशारा करती है। इसलिए यह मेरे लिए काम नहीं कर रहा था।


मैंने आपके निष्कर्ष को प्रतिबिंबित करने के लिए अपने उत्तर को सुधार दिया है। मैंने इसे बनाया है (यह मेरे git 1.8 डिस्ट्रो में डिफ़ॉल्ट रूप से नहीं बनाया गया था) और आज सुबह इसका परीक्षण किया। यह वास्तव में कारगर है।
VonC

1
यदि आप प्राप्त Package gnome-keyring-1 was not found in the pkg-config search path.कर रहे हैं तो आप gnome-keyring के लिए देव पुस्तकालयों को याद कर रहे हैं। उबंटू पर ये उपलब्ध हैं apt-get install libgnome-keyring-dev। इसके अलावा, मुझे git contrib repo को मैन्युअल रूप से github.com/git/git/tree/master/contrib से डाउनलोड करना होगा और इसे / usr / share / git-core / में डालना होगा। इन फ़ाइलों को अब डिफ़ॉल्ट git इंस्टॉल के साथ शामिल नहीं किया गया है, कम से कम आधिकारिक git-core ubuntu ppa का उपयोग करते हुए।
जोहान

1
यह बहुत अच्छी तरह से बताता है कि क्यों aur पैकेज git-credential-gnomekeyringचला गया है, बहुत बुरा है कि AUR में ऐसी कोई जानकारी नहीं है।
रेनस

Ubuntu पर मेरे पास कोई git फ़ोल्डर नहीं है /usr/share/... केवल gitweb और git-core। लेकिन मैं Git 1.7.9 पर हूं। क्या ऐसा हो सकता है ...?
temporary_user_name

1
2017 के आर्क पर, बस स्थापित libgnome-keyringकरना पर्याप्त है (कम से कम यदि आप सूक्ति का उपयोग कर रहे हैं)।
ald.li

25

अद्यतन Q4 2016:

  • यूनिक्स, मैक (Git 2.11+)

    git config --global credential.helper libsecret
    

(" Git क्रेडेंशियल हेल्पर का उपयोग करते समय त्रुटिgnome-keyring देखें ")

  • खिड़कियाँ:

    git config --global credential.helper manager
    

(देखें " विंडोज में गेट बैश कंसोल में साइन आउट कैसे करें? ": विंडोज के लिए नवीनतम Microsoft गिट क्रेडेंशियल मैनेजर का उपयोग करके विंडोज के लिए Git है )


मूल उत्तर (2012)

विंडोज, मैक और यूनिक्स प्लेटफार्मों के लिए क्रेडेंशियल हेल्पर्स को पहले "गिट-क्रेडेंशियल-हेल्पर" रेपो में पेश किया गया है , जिसे अब गिट डिस्ट्रो में शामिल किया गया है :

इस रिपॉजिटरी में Git क्रेडेंशियल हेल्पर्स ( gitcredentials(7)) का सेट होता gitहै जो भविष्य में (या योगदान किए जाने वाले) का हिस्सा होता है।

$ git clone git://github.com/pah/git-credential-helper.git
$ BACKEND=gnome-keyring      # or any other backend
$ cd git-credential-helper/$BACKEND
$ make
$ cp git-credential-$BACKEND /path/to/git/crendential

जब निर्माण, यह /path/to/git/credentialनिर्देशिका में स्थापित किया जाएगा ।

इस बैकएंड का उपयोग करने के लिए, आप सेटिंग में इसे अपने (वैश्विक) Git कॉन्फ़िगरेशन में जोड़ सकते हैं

(यहां यूनिक्स के लिए):

git config --global credential.helper /path/to/git/credential/gnome-keyring/git-credential-gnome-keyring

विंडोज के लिए नोट:

मुझे लगता है कि आप विंडोज पर चलने वाला एक प्रोग्राम बना सकते हैं और " पिपली कीरिंग 0.10 " जैसे एक पुस्तकालय को कॉल कर सकते हैं ।
लेकिन यह बैक-एंड है, और आप इसे सीधे गिट से उपयोग नहीं करते हैं।

आप जो उपयोग कर रहे हैं वह एक "क्रेडेंशियल हेल्पर" है (जो बदले में, विंडोज पर किसी भी क्रेडेंशियल एपीआई को चाहेगा )।

Windows के लिए GitHub इस तरह का सहायक प्रदान करता है (जैसा कि निष्पादन योग्य ... github) कहा जाता है, और Windows सत्र की अवधि के लिए आपकी साख को संग्रहीत कर सकता है।
"Windows के लिए GitHub" विंडो से एक शेल लॉन्च करें, और आप देखेंगे, "git config --system -l" टाइप करके:

C:\Users\VonC\Documents\GitHub\test [master +2 ~0 -0 !]> git config --system -l
credential.helper=!github --credentials

credential.helper=!github --credentialsभाग क्रेडेंशियल सहायक 'कॉल करेंगे github'।

$ git config [--global] credential.helper $BACKEND

वह नहीं जो मैं ढूंढ रहा हूं। उत्तर केवल * निक्स होना चाहिए।
marcosdsanchez

@marcosdsanchez ठीक है, मैंने अपने उत्तर को Gix के साथ यूनिक्स पर gnome-keyring के सेटअप और उपयोग को शामिल करने के लिए संपादित किया है।
VONC

मैं git की 1.8.0 सुविधा का उपयोग करना चाहता हूं, जो पहले से ही है। थर्ड पार्टी कोड नहीं। धन्यवाद।
marcosdsanchez

@marcosdsanchez फिर आपको github.com/git/git/tree/master/contrib/credential/gnome-keyring (जिसे git के साथ पैक किया गया है) को संकलित करने की आवश्यकता है । एक बार संकलित करने के बाद, आप मेरे जवाब में इसे सचित्र रूप में स्थापित और उपयोग करेंगे।
VonC

मुझे लगता है कि कोई बाइनरी बिल्ट-इन नहीं है
marcosdsanchez

15

अपडेट अक्टूबर 2018

GNOME ने libgnome-keyring को हटा दिया है और इसे libsecret से बदल दिया है। प्रतिबद्ध https://github.com/git/git/commit/87d1353a6a ने एक नया क्रेडेंशियल हेल्पर / usr / libexec / git-core / git-credential-libsecret जोड़ा।

git config --global credential.helper libsecret


2
शायद, यह यहाँ किसी भी सूक्ति-कीरिंग आधारित उत्तर पर टिप्पणी होनी चाहिए।
मुरली

सहमत, gnome-keyringआधारित उत्तर तदनुसार संपादित किए जाने चाहिए। शायद सिर्फ पूरे विकल्प को छोड़ दें। यह मेरे लिए Ubuntu 19.10 पर बिल्कुल भी काम नहीं किया।
मारियो

11

फेडोरा पर किसी के लिए, मैंने जेम्स वार्ड के उत्तर को थोड़ा संपादित किया:

sudo yum install libgnome-keyring-devel
cd /usr/share/doc/git/contrib/credential/gnome-keyring
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring

2
मैं उलझन में हूँ, यह पहले से ही git संकुल के साथ शामिल नहीं है? यह फ़ाइल फिर fc19 पैकेज के भीतर, git-1.8.3.1-1.fc19.x86_64 है। यहाँ यह फ़ाइल है /usr/libexec/git-core/git-credential-gnome-keyring:।
SLM

10
Fedora 21 में, git 2.1.0, आप बस कर सकते हैं:git config --global credential.helper gnome-keyring
RedPoppy

7

बस इन दो पंक्तियों को अपनी ~/.gitconfigफ़ाइल में जोड़ें:

[credential]
    helper = gnome-keyring

अगली बार जब आपसे Git द्वारा पासवर्ड मांगा जाएगा, तो दर्ज किया गया पासवर्ड Gnome Keyring (आप इसे seahorseटूल के साथ देख सकते हैं ) में सहेजा जाएगा , और आपसे बाद में दोबारा पासवर्ड नहीं पूछा जाएगा।

यह मानता है कि आपका Git संस्करण पर्याप्त रूप से नया है (जैसे 2.1.0) और आप Linux Fedora, RHEL या CentOS के अंतर्गत हैं । पुराने संस्करणों या अन्य OSs / डिस्ट्रोस के लिए अन्य उत्तर देखें।


6
उबंटू में 16.04:git: 'credential-gnome-keyring' is not a git command.
फेरिट करें

@ सिबोट: वूप्स, आप सही कह रहे हैं। ऐसा लगता है कि Fedora / RHEL इसे प्रदान करता है, लेकिन Ubuntu नहीं करता है। तो जेम्स वार्ड ( stackoverflow.com/a/14528360/2148773 ) का जवाब उस मामले में बेहतर है।
जैतून

2

कुछ वितरण इस एकीकरण के साथ अधिष्ठापन पैकेज के रूप में आते हैं, बिना किसी संकलन की आवश्यकता के। गनोम के आपके संस्करण के आधार पर, आपको gnome-keyringया तो libsecretपैकेज के संस्करणों को स्थापित करने की आवश्यकता होगी , कुछ इस तरह git-credential-gnome-keyring(OpenSUSE लीप 42.3)।

हालाँकि, यह अपने आप Git एकीकरण को GNOME कीरिंग के साथ स्वचालित रूप से सक्षम नहीं करेगा। क्रेडेंशियल स्टोरेज की इस विधि का उपयोग करने के लिए आपको Git को अभी भी कॉन्फ़िगर करना होगा:

git config --global credential.helper gnome-keyring # If you installed git-credential-gnome-keyring
git config --global credential.helper libsecret     # If you installed git-credential-libsecret

उबंटू 19.10 पर, gnome-keyringविकल्प मेरे लिए अधिक काम नहीं करता है, लेकिन जेम्स वार्ड का निर्देश libsecretअभी भी अच्छी तरह से काम करता है। मैं, हालांकि, gnome-keyringयहाँ दिए गए उपयोग की सिफारिश से भ्रमित था : github.com/timhughes/git-credential-libsecret
मारियो

libsecret(या क्या find /usr -iname git-credential-libsecretदेता है) जेंटू लिनक्स में सही विकल्प है। ध्यान दें कि इसके dev-vcs/gitसाथ उभरा होना चाहिए USE=gnome-keyring
sphakka

1

फेडोरा पर आपको इंस्टॉल करना होगा

$ sudo dnf install git-credential-libsecret

और क्रेडेंशियल हेल्पर का उपयोग करने के लिए अपने गिट कॉन्फ़िगरेशन को संपादित करें ।

[credential]
    helper = /usr/libexec/git-core/git-credential-libsecret

FYI करें libsecretपैकेज को हाल ही में विभाजित किया गया है, @rugk से पोस्ट देखें । इसलिए उपयोगकर्ताओं को इस पैकेज को पुन: स्थापित करना होगा।

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