Git gnome-keyring entegrasyonu ile nasıl kullanılır


129

Git 1.8.0, gnome-keyring ile entegrasyonu destekler.

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

Git kimlik bilgileri yardımcıları hakkındaki belgeleri okuduktan sonra: http://git-scm.com/docs/gitcredentials.html

Bu yeni özelliği kullanmanın bir yolunu bulamadım. Nasıl entegre edebilirim? Archlinux'un deposundan git kurulu Archlinux'u kullanıyorum. (git 1.8.0)

Yanıtlar:


193

@ marcosdsanchez'nin cevabı Arch için (orijinal soruyu cevaplıyor) ama Ubuntu'dayım. Git> = 2.11 için:

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 için:

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
İlk başta bunu yapmakta tereddüt ettim ama sonunda yaptım ve mükemmel çalışıyor. As gitcredentials için dokümanlar söylüyorlar, ayrıca yapmak isteyebilirsiniz git help -a | grep credential-ve yüklediğiniz diğer yardımcıları olup olmadığını görün. Varsayılan olarak gelenler credential-cache(şifreyi girdikten sonra bir süre hatırlayın , varsayılan olarak 15 dakika) ve credential-store( varsayılan olarak şifreyi diskteki şifrelenmemiş bir dosyada düz metin olarak saklayın ~/.git-credentials).
ShreevatsaR

51
Bunun neden manuel olarak derlenmesi gerektiğini ve bir paket aracılığıyla varsayılan olarak kullanılamadığını kimse açıklayabilir mi?
lanoxx

4
Ubuntu 14.04 LTS'de çalıştı!
Eugene Kulabuhov

4
chmod 0755 git-credential-gnome-keyringroot dışında başkalarına yürütme izni eklemek zorunda kaldı
Lari Hotari

8
Ubuntu 16.04 LTS
Eugene Kulabuhov

54

Git 1.8.0, gnome-keyring desteği ile birlikte gelir, ancak ikili dosyanın platformunuz için derlenmesi gerekir.

Archlinux'da bunu benim için çözen şey buydu:

$ 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 çözümü yakındı, ancak git config komutu yürütülebilir dosyayı göstermelidir. Bu yüzden benim için işe yaramadı.


Bulunduğunuz sonucu yansıtmak için cevabımı yeniden biçimlendirdim. Ben inşa ettim (benim git 1.8 dağıtımımda varsayılan olarak oluşturulmadı) ve bu sabah test ettim. Çalışıyor.
VonC

1
Eğer Package gnome-keyring-1 was not found in the pkg-config search path.alıyorsanız, gnome-keyring için geliştirici kitaplıklarını kaçırıyorsunuz demektir. Ubuntu'da bunlar ile kullanılabilir apt-get install libgnome-keyring-dev. Ayrıca git katkıda deposunu manuel olarak github.com/git/git/tree/master/contrib adresinden indirmem ve / usr / share / git-core / içine koymam gerekiyordu. Bu dosyalar, en azından resmi git-core ubuntu ppa kullanılarak, artık varsayılan git kurulumuna dahil edilmemiştir.
Johann

1
Bu, aur paketinin neden git-credential-gnomekeyringgittiğini, AUR'da böyle bir bilgi olmayacak kadar kötü olduğunu oldukça iyi açıklıyor .
ryenus

/usr/share/Ubuntu'da git klasörüm yok ... sadece gitweb ve git-core. Ama Git 1.7.9'dayım. Nedeni bu olabilir mi ...?
temporary_user_name

1
Arch 2017 itibariyle, basitçe kurulum libgnome-keyringyeterlidir (en azından gnome kullanıyorsanız).
ald.li

25

2016 4. Çeyrek Güncellemesi:

  • Unix, Mac (Git 2.11+)

    git config --global credential.helper libsecret
    

(Bkz. " Git kimlik bilgisi yardımcısını kullanırken hatagnome-keyring ")

  • Pencereler:

    git config --global credential.helper manager
    

(Bkz. " Windows'ta Git Bash konsolunda nasıl oturum kapatılır? ": Bu, Windows için en son Microsoft Git Kimlik Bilgisi Yöneticisi'ni kullanan Windows için Git'tir )


Orijinal cevap (2012)

Kimlik Yardımcılar, Windows, Mac ve Unix platformları için, ilk tanıtılmıştır "git-kimlik-yardımcı" repo , şimdi git dağıtıma dahil edilmiştir :

Bu depo, gitcredentialsparçası olan git(veya gelecekte katkıda bulunması amaçlanan ) Git kimlik bilgisi yardımcıları ( (7)) grubunu içerir .

$ 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

inşa edildiğinde, /path/to/git/credentialdizine kurulur .

Bu arka ucu kullanmak için, ayarlayarak (genel) Git yapılandırmanıza ekleyebilirsiniz.

(Unix için burada):

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

Windows için not:

Sanırım Windows üzerinde çalışan ve " pypi keyring 0.10 gibi bir kitaplık çağıran bir program yapabilirsin .
Ama bu arka uç ve onu doğrudan Git'ten kullanmıyorsun.

Kullandığınız şey bir "kimlik bilgisi yardımcısı" dır (bu da Windows'ta istediği herhangi bir kimlik bilgisi API'sini çağıracaktır ).

Windows için GitHub böyle bir yardımcı sağlar (... github olarak adlandırılan bir yürütülebilir dosya olarak) ve kimlik bilgilerinizi Windows oturumu süresince saklayabilir.
Bu "Windows için GitHub" penceresinden bir kabuk başlatın ve "git config --system -l" yazarak göreceksiniz:

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

credential.helper=!github --credentialsBölüm kimlik yardımcı 'arayacak github'.

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

Aradığım bu değil. Cevap yalnızca * nix olmalıdır.
marcosdsanchez

@marcosdsanchez tamam, Cevabımı Git ile Unix üzerinde gnome-keyring kurulumunu ve kullanımını içerecek şekilde düzenledim.
VonC

Git'in 1.8.0 özelliğini kullanmak istiyorum, zaten var. Üçüncü taraf kodu değil. Teşekkürler.
marcosdsanchez

@marcosdsanchez sonra github.com/git/git/tree/master/contrib/credential/gnome-keyring (git ile paketlenmiştir) derlemeniz gerekir . Derledikten sonra, cevabımda gösterildiği gibi kurar ve kullanırsınız.
VonC

Sanırım yerleşik ikili yok?
marcosdsanchez

15

Ekim 2018 Güncellemesi

GNOME, libgnome-keyring'i kullanımdan kaldırmış ve onu libsecret ile değiştirmiştir. Commit https://github.com/git/git/commit/87d1353a6a yeni bir kimlik bilgisi yardımcısı / usr / libexec / git-core / git-credential-libsecret ekledi.

git config --global credential.helper libsecret


2
Muhtemelen, buradaki herhangi bir gnome-keyring tabanlı cevap için bir yorum olmalıdır.
Murmel

Katılıyorum, gnome-keyringtemel cevaplar buna göre düzenlenmelidir. Belki sadece tüm seçeneği hariç tutun. Bu benim için Ubuntu 19.10'da hiç işe yaramadı.
Mario

11

Fedora'daki herkes için James Ward'ın cevabını biraz düzenledim:

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
Kafam karıştı, bu zaten git paketlerine dahil değil mi? O halde fc19 paketi içindeki git-1.8.3.1-1.fc19.x86_64 içindeki bu dosya nedir. Burada bu dosyayı var: /usr/libexec/git-core/git-credential-gnome-keyring.
slm

10
Fedora 21, git git config --global credential.helper gnome-keyring
2.1.0'da şunları

7

~/.gitconfigDosyanıza şu iki satırı eklemeniz yeterlidir:

[credential]
    helper = gnome-keyring

Bir dahaki sefere Git tarafından bir şifre sorulduğunda, girilen şifre Gnome Keyring'e kaydedilecek (bunu seahorsearaçla görebilirsiniz ) ve daha sonra şifreyi tekrar girmeniz istenmeyecektir.

Bu, Git sürümünüzün yeterince yeni olduğunu (2.1.0 gibi) ve Linux Fedora, RHEL veya CentOS altında olduğunuzu varsayar . Daha eski sürümler veya diğer işletim sistemleri / dağıtımlar için diğer yanıtları kontrol edin.


6
Ubuntu 16.04 yılında:git: 'credential-gnome-keyring' is not a git command.
ferit

@Saibot: whoops, haklısın. Fedora / RHEL bunu sağlıyor gibi görünüyor, ancak Ubuntu sağlamıyor. Dolayısıyla James Ward'ın ( stackoverflow.com/a/14528360/2148773 ) cevabı bu durumda daha iyidir.
oliver

2

Bazı dağıtımlar, herhangi bir derleme gerektirmeden bu entegrasyonla birlikte bir kurulum paketi olarak gelir. GNOME sürümünüze bağlı olarak , paketin herhangi bir sürümünü gnome-keyringveya libsecretsürümlerini git-credential-gnome-keyring(OpenSUSE Leap 42.3) gibi yüklemeniz gerekecektir .

Ancak, bu kendi içinde GNOME Keyring ile Git entegrasyonunu otomatik olarak etkinleştirmeyecektir. Bu kimlik bilgisi depolama yöntemini kullanmak için Git'i yine de yapılandırmanız gerekir:

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

Ubuntu 19.10'da bu gnome-keyringseçenek artık benim için çalışmıyor, ancak James Ward'ın kullanma talimatı libsecrethala iyi çalışıyor. Bununla birlikte, gnome-keyringburada verilen kullanım tavsiyesiyle kafam karıştı : github.com/timhughes/git-credential-libsecret
Mario

libsecret(veya ne find /usr -iname git-credential-libsecretverir) Gentoo Linux'ta doğru seçenektir. Bununla dev-vcs/gitortaya çıkması gerektiğini unutmayın USE=gnome-keyring.
sphakka

1

Fedora sitesinde gerekir yüklemek

$ sudo dnf install git-credential-libsecret

ve kimlik bilgisi yardımcısını kullanmak için git yapılandırmanızı düzenleyin .

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

Bilginize, libsecretpaket yakın zamanda bölünmüştür, @rugk gönderisine bakın . Bu nedenle kullanıcıların bu paketi yeniden yüklemeleri gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.