Git pull şifresi ile komut nasıl girilir?


140

Bu komutu tek bir satırda yapmak istiyorum:

git pull && [my passphrase]

Nasıl yapılır?


bunu kullanarak parolanızı boş olarak değiştirebilirsiniz: help.github.com/articles/working-with-ssh-key-passphrases
jacerate

1
Ssh aracısını çalıştırırsanız bir parola girme gereksinimini ortadan kaldırabilirsiniz. Bir git çekme işlemini ilk kez yaptığınızda etkileşimli olarak yaparsınız ve ssh aracısı özel anahtarınızı hatırlar ve git pull komutunu sormadan çalıştırabilirsiniz.
Tim Finer

Yanıtlar:


162

Tam olarak istediğin bu değil, http (ler) için:

  • parolayı .netrc dosyasına (Windows'ta _netrc) koyabilirsiniz. Oradan otomatik olarak alınır. 600 izne sahip ana klasörünüze gider.
  • Ayrıca repoyu klonlayabilirsiniz, https://user:pass@domain/repoancak kullanıcılarınızı göstereceği / birçok yerde geçeceği için bu gerçekten tavsiye edilmez ...
  • yeni bir seçenek kimlik yardımcısını kullanmaktır . Kimlik bilgilerinin standart yapılandırma yardımcısı kullanılarak yerel yapılandırmanızda açık metin olarak saklanacağını unutmayın. wincred ile kimlik yardımcısı pencerelerde de kullanılabilir.

Kimlik bilgisi yardımcısı için kullanım örnekleri

  • git config credential.helper store - kimlik bilgilerini süresiz olarak saklar.
  • git config credential.helper 'cache --timeout=3600'- 60 dakika boyunca depolar

Ssh tabanlı erişim için, gerektiğinde ssh anahtarını sağlayacak ssh aracısını kullanırsınız. Bunun için bilgisayarınızda anahtarların oluşturulması, ortak anahtarın uzak sunucuda depolanması ve özel anahtarın ilgili anahtar deposuna eklenmesi gerekir.


1
SSH bölümünü ayrıntılı olarak açıklayabilir misiniz? Bir EC2 örneği yapılandırıyorum ve şifremi ve AWS otomatik ölçeklendirmesini istemeden çekmesini istiyorum. Bu kamu / özel düzeni iyi bir çözüm gibi görünüyor.
Pedro Dusso

1
Gibi sesler @PedroDusso bu konuya ne sonra ise
eis

2
iyi bir çözüm gibi görünen konuşlandırma anahtarları mekanizması kullanarak sona erdi. Teşekkürler!
Pedro Dusso

129

Komut satırında https bağlantısı için kimlik bilgileri sağlamanın bir yolunu buldum. Git pull için tam URL'yi belirtmeniz ve kimlik bilgilerini buraya eklemeniz yeterlidir:

git pull https://username:password@mygithost.com/my/repository

Deponun daha önce kimlik bilgileriyle klonlanması gerekmez, bu da kimlik bilgilerinizin bitmediği anlamına gelir .git/config. (Ancak kabuğunuzun size ihanet etmediğinden ve komut satırını bir geçmiş dosyasında sakladığından emin olun.)


şifre gerekli değildir ve bu şekilde şifre yazmak güvenli değildir
meteor

2012'de kabul edilen cevapta listelediğim şeylerden biri bu değil mi?
eis

8
@eis: Tam olarak değil. Önemli olan , veri havuzunu kimlik bilgilerini içeren URL ile klonlamanıza gerek yoktur , ancak yine de kimlik bilgileriyle URL'den çekilebilir . Sonuç, kimlik bilgilerinin .git / config dosyasına gelmemesidir.
holgero

5
Parçayı atlarsanız, :passwordenter tuşuna bastıktan sonra parola girmeniz istenir. Bu şekilde, parolanız bash geçmişine kaydedilmez.
Matthias Fischer

1
Evet @PramodGarg use - git pull kullanıcı adı: password@mygithost.com/my/repository.git Şube
PAVITRA

39

Soruyu doğrudan cevaplamıyor, ancak bu soruyu, uzak bir sunucudan her çekişimde şifreyi tekrar girmemenin bir yolunu ararken buldum .

Eh, gitkimlik bilgilerinizi sınırlı bir süre için önbelleğe almanızı sağlar. İçinde özelleştirilebilir git configve bu sayfa çok iyi açıklıyor:

https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux

Bir terminalde şunu çalıştırın:

$ git config --global credential.helper cache
# Set git to use the credential memory cache

Önbellek zaman aşımını özelleştirmek için şunları yapabilirsiniz:

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

Kimlik bilgileriniz daha sonra istenen süre boyunca bellekte saklanacaktır.


5

Git kimlik bilgisi yardımcısının "saklanmasının" şifrelenmemiş parola değişikliklerini Git 2.5+ (Q2 2014) ile depolayacağını unutmayın . Junio ​​C Hamano ( ) tarafından 17c7f4d taahhüdüne
bakıngitster

credential-xdg

storeXDG yapılandırma dosyası konumlarını belirtmek için kimlik bilgileri yardımcısının arka ucundaki örnek " " kısmını değiştirin.

Doktor şimdi diyor ki:

Belirtilmezse:

  • Kimlik bilgileri elde aranacaktır ~/.git-credentialsve $XDG_CONFIG_HOME/git/credentialsve
  • Kimlik bilgileri yazılır ~/.git-credentialsvarsa, ya $XDG_CONFIG_HOME/git/credentialsda varsa ve eğer eski değildir.

1

Cmd'nin altında şifre @ @ yoksa çalışır: Şifre @ @ git pull https://username:pass@word@mygithost.com/my/repository varsa, aşağıda gösterildiği gibi% 40 değiştirin: git pull https://username:pass%40word@mygithost.com/my/repository

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.