Git'i gnome-keyring ve http (s) repolarıyla kullanmanın doğru yolu nedir?


43

Şu anda, ne zaman git pullveya git pushbir http (ler) havuzuna, aşağıdakileri alıyorum:

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

Bu nadir kullanım için uygun, ancak çok çabuk sinir bozucu olmaya başlıyor. Ne yazık ki, ssh'ye geçmek bu durumda bir seçenek değildir.

Daha önceki sürümlerde gitbir kimlik bilgisi "deposu" ve "önbellek" sağladığını, ancak şifreyi düz metin olarak sakladığı için önerilmediğini okudum .

FAKAT

gitGörünüşe göre daha yeni sürümlerinde git kimlik bilgileri depolanır gnome-keyring, ancak doğru şekilde ayarlanması gerekir.

Bunun çalışması için SO'da (Ubuntu olmayan) diğer cevapları izlemeyi denedim (yani bu ), ancak yine de kullanıcı adı ve şifre istemi ile size sunuldum.

gitHttp (ler) depolarının kimlik bilgilerini kaydetmenin doğru ve en güvenli yolu nedir ve bunlardan biri Ubuntu'da nasıl çalışır?


Hangi yöntemleri denediğini söylemelisin. Aksi takdirde, tam olarak bunları öneren cevaplar bulabilirsiniz.
muru

@muru Neden okunabilirlik için eklediğim vurguyu kaldırdın? Şimdi sadece bir metin bloğu ve soruyu diğerlerinden ayıran nedenler ve gerçek soru daha az açık.
tu-Reinstate Monica-dor duh,

Bir bütün cümle kalın ve italik pek okunabilir.
muru

1
@muru farklı olmak için yalvarıyorum. Kalın ve italikleştirilmiş metnin sorunun temel kısımlarını ortaya çıkardığını buldum.
tu-Reinstate Monica-dor duh,

Yanıtlar:


45

gnome-credential-helper şimdi kullanımdan kaldırıldı.

Bunun yerine, libsecret kullanın. Eğer zaten ubuntu'nuzu doldurmadıysa, aşağıdaki prosedürü kullanın:

  1. Sen yükleyebilir libsecretve geliştirme ile kitaplıkları:

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

  2. Daha sonra kimlik bilgisi yöneticisi oluşturmanız gerekir.

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

    sudo make

  3. Son olarak, işaret etmelidir budala config yeni oluşturulan dosyaya:

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

Https://stackoverflow.com/a/40312117/2017781 tarihinde daha fazla ayrıntı


1
Bu çözümün yalnızca git sürümleri> = 2.11 (libsecret dir'in bulunabileceği yer) için geçerli olduğunu belirtmek isteyebilirsiniz
Charles Roberto Canato

1
Bu güvenli mi? Sırlar nerede saklanıyor? Hem iletim hem de depolama güvenli midir? Resmi bir belge var mı? Görünüşe göre, bu sayfaya ve bu sayfaya göre , “Ana” da ve Debian / Ubuntu tarafından sağlanıyor. Ve: “
DBus'u

1
@caw: GNOME'da "Gizli Servis", sadece farklı bir API üzerinden aynı gnome-keyring-daemon'dur. (Libsecret planı, diğer DE'lerin aynı API'yi destekleyen kendi arka uçlarını kurmalarına izin vermekti, örneğin KDE bunu kwalletd'de gerçekleştirmeyi planlıyordu.)
Grawity

5
Tercih ettiğim cevabın güncellenmesi, bunun doğru olduğunu 18.04 tarihinde doğrulayabilirim. :)
tu-Reinstate Monica-dor duh

44

Sen kurulum için git ihtiyaç credential helperGnome Anahtarlık ile:

Gnome Anahtarlık develini kurun ve derleyin:

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

Ve kimlik bilgilerini ayarlayın:

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

Bu gerçekten garip. Anlamsal olarak, bağlantıdaki cevap ile bu cevap arasında bir fark olmamalıdır. Ancak bazı nedenlerden dolayı bu cevap diğerinin olmadığı yerlerde çalışır.
tu-Reinstate Monica-dor duh '

Sonra koşun git pushya git pullda normal olarak koşun ve ilk kez bir mağazaya soracak, ve bundan sonra her zaman anahtarlıktan alacak. Doğrulamak için çalıştırın seahorse. "Parolalar" -> "Giriş" altında listelenmelidir.
tu-Reinstate Monica-dor duh '

@tudor Bu garip, cevabım ve link bir arasında herhangi bir "kavramsal" fark görmüyorum. Yardım etmesine sevindim.

Bana hala "make" komutunu çalıştırmanız gerektiğini garip geliyor, ancak bu adımlar harika çalışıyor. Teşekkürler!
DaveTheScientist

2

Bu basit yaklaşım Ubuntu 18.04.1'de git 2.17.1 ile yeterli gözüküyor:

git config --global credential.helper cache

Bunun gibi bir saat (= 3600 saniye) zaman aşımı belirtebilirsiniz:

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

İnce kılavuzda daha fazla okuma .

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.