GitHub'da https: // kullanırken parola yazmayı atlamanın bir yolu var mı? | tutuappapks.com
Kısa bir süre önce depolarımı GitHub'da https: // (güvenlik duvarı sorunları nedeniyle) ile senkronize etmeye geçtim ve her seferinde bir şifre soruyor. Eskiden benim SSH Sertifika ve yeterliydi. Benim durumumda şifreyi atlamanın bir yolu var mı (http / https kullanarak)?
Ayrıca bakınız superuser.com/questions/199507/... - Colonel Panic
Artık şifrelemek için bir kimlik bilgisi yardımcısı kullanabilirsiniz. _netrc Kimlik bilgilerinizi içeren dosya. Görmek cevabım aşağıda. Bunu daha güvenli buldum git-credential-winstore.exe (bellek önbellek), Windows'da biraz buggy. - VonC
Ayrıca bakınız Git push kullanıcı adı ve şifre gerektirir ve Git bana şifre sormaya devam ediyor.
git-credential-winstore Windows için en iyi çalıştı. Buggy ne? Birkaç kez yapmış olsam da, ssh kurulumunun yapılması tercih edilen bir seçenektir, birden fazla ana bilgisayara bağlanmanız gerektiğinde daha düzensizdir ve bazen sadece düz çalışmaz. - Bron Davies
"SSH sertifikası" ile "SSH özel anahtarı" anlamına geldiğinizi farz ediyorum. - Michael Mior
Git sürümü 1.7.9 ve üstü ile
Git 1.7.9'dan (Ocak 2012'de piyasaya sürüldüğünden) beri, her zaman şifrenizi HTTP / HTTPS için yazmak zorunda kalmamak için Git'te düzgün bir mekanizma var. kimlik yardımcıları. (Sayesinde dazonic Bu yeni özelliği aşağıdaki yorumlarda belirtmek için.)
Git 1.7.9 veya üstü ile, aşağıdaki kimlik yardımcılarından birini kullanabilirsiniz:
... bu da Git'e, parolanızı (öntanımlı olarak) 15 dakika süreyle bellekte saklı tutmasını söyler. Daha uzun bir zaman aşımı ile şunları yapabilirsiniz:
(Bu örnekte önerilmiştir. Linux için GitHub yardım sayfası.) İstediğiniz takdirde kimlik bilgilerinizi kalıcı olarak da saklayabilirsiniz, aşağıdaki diğer cevaplara bakın.
GitHub'un yardımı ayrıca önerir Mac OS X'te çalışıyor ve kullanılıyorsa ev yapımı içki Git'i kurmak için, yerel Mac OS X anahtar deposunu aşağıdakilerle birlikte kullanabilirsiniz:
Windows için, bir yardımcısı var Windows için Git Kimlik Yöneticisi veya msysgit içinde wincred.
İle Windows 2.7.3+ için Git (Mart 2016):
Linux için şunları yapabilirsiniz: kullanım gnome-keyring(veya KWallet gibi diğer anahtarlık uygulaması).
1.7.9'dan önceki Git sürümleriyle
Git'in 1.7.9'dan önceki sürümlerinde, bu daha güvenli seçenek kullanılamaz ve URL’nizi değiştirmeniz gerekir. origin uzaktan bu parola dahil etmek için kullanır:
... başka bir deyişle :password kullanıcı adından sonra ve önce @.
İçin yeni bir URL ayarlayabilirsiniz origin uzaktan kumanda ile:
Kullandığınızdan emin olun https ve eğer bunu yaparsanız, GitHub şifrenizin düz metin içinde saklanacağını bilmelisiniz. .git Belli ki istenmeyen olan dizin.
Herhangi bir Git sürümü ile (iyi, sürüm 0.99'dan beri)
Alternatif bir yaklaşım, kullanıcı adınızı ve şifrenizi ~/.netrc dosya, şifreyi uzak URL'de tutmakla birlikte, parolanızın diskte düz metin olarak saklanacağı ve dolayısıyla daha az güvenli ve tavsiye edilmediği anlamına gelir. Ancak, bu yaklaşımı almak istiyorsanız, aşağıdaki satırı ekleyin. ~/.netrc:
... değiştiriliyor <hostname> sunucunun ana makine adı ve <username> ve <password> kullanıcı adınız ve şifreniz ile. Ayrıca, bu dosyadaki kısıtlayıcı dosya sistemi izinlerini ayarlamayı da unutmayın:
Windows'da bu dosyanın çağrılması gerektiğini unutmayın. _netrcve% HOME% ortam değişkenini tanımlamanız gerekebilir - daha fazla ayrıntı için bkz:
Git - Kullanıcı ve şifreyi kaydetmek için windows'ta .netrc dosyası nasıl kullanılır
Parolanızı düz metin olarak saklamayın. Git 1.7.9'dan itibaren kimlik bilgilerini kullanabilirsiniz. git config --global credential.helper osxkeychain OS X'de. Diğer işletim sistemi için bkz. help.github.com/articles/set-up-git - dazonic
FWIW, osx anahtarlık malzemesi temel GIT kaynak kodunun bir parçasıdır, Brew veya MacPorts'un özel bir bileşeni değildir veya ayın tadı ne olursa olsun. Ve sıfırdan gitmeye bile gerek yok - sadece cd katkıda / kimlik bilgisi / osxkeychain / ve make run. - synthesizerpatel
İki faktörlü kimlik doğrulama ile, github'un ne aradığını kullanmanız gerekir. Kişi Erişim Jetonu. Aslında her zaman bir şifre kullanmalısınız, çünkü bir şifrenin aksine, hangi erişime izin verdiğinizi kontrol edebilirsiniz. Sadece URL’deki şifreyi değiştirin. https://username:PERSONAL_ACCESS_TOKEN@github.com/username/project.git. Kullanılacak kadar güvenli diskte saklanan düz metin şifrelerini kullanır. - Russell Stuart
git config --global credential.helper cache pencereler üzerinde çalışmıyor: stackoverflow.com/questions/11693074/... kullanım gitcredentialstore Windows'da mutlu ol - Sebastian J.
Bu zaman aşımını sonsuzluğa ayarlamak için herhangi bir yol var mı? - sudo
Ayrıca Git'i aşağıdakileri kullanarak kimlik bilgilerinizi kalıcı olarak saklayabilirsiniz:
Not: Bu uygun olsa da, Git kimlik bilgilerinizi açık metinde saklar. Proje dizininizin altındaki yerel bir dosya (.git-credentials) ("ev" dizini için aşağıya bakın). Beğenmezseniz, bu dosyayı silin ve önbellek seçeneği.
Git'in ihtiyaç duyduğu her an kimlik bilgilerinizi istemeye devam etmesini isterseniz uzak depoya bağlanın, bu komutu çalıştırabilirsiniz:
İçindeki şifreleri saklamak için .git-credentials senin içinde %HOME% proje dizininin aksine dizin: kullan --global bayrak
Windows'ta, bir yardımcı programın GIT parolanızın şifrelenmiş bir sürümünü Windows Creditial Store'da saklamak üzere bir şeyi yapılandırdığını indirebilirsiniz. confluence.atlassian.com/display/STASH/... - Contango
--Global belirtmem gerektiğini veya mevcut depodaki ayarları depolamayı denediğimi buldum: git config --global credential.helper store - Brian Gordon
Önbellek neden sürekli saklanmak yerine? Bilgisayarları paylaşıyor musun? - Michael J. Calkins
@BrianGordon Windows üzerinde GIT 1.9.5 kullanıyorum ve --global bayrak gereksizdi. Bu bayrak olmasa bile, kimlik bilgileri dosyası %USER_HOME% dizin. - jFrenetic
Düz metinde saklamıyorsa, neyle korunur? Şifreniz? Git'e bağlandığınızda yönetici şifreniz sormak zorunda değil mi? Başka bir parola biraz garip almak için parola girmek zorunda değil mi? - Cruncher
TLDR; Bir Git 1.8.3+ ile şifrelenmiş netrc dosyası.
Git deposu HTTPS URL'si için bir parola kaydedilmesi, bir ~/.netrc (Unix) veya %HOME%/_netrc (not _) Windows'ta.
Fakat: Bu dosya şifrenizi düz metinde saklardı.
Çözüm: Bu dosyayı şifrele GPG (GNU Gizlilik Görevlisi)ve her bir şifre gerektiğinde Git'in şifresini çöz push/pull/fetch/clone operasyon).
Not: Git 2.18 (Q2 2018) ile, artık şifrelenmiş şifreyi çözmek için kullanılan GPG'yi özelleştirebilirsiniz. .netrc dosya.
Görmek 786ef50 işlemek, f07eeed işlemek (12 Mayıs 2018) tarafından Luis Marsano (``).
(Birleştirilmiş Junio ​​C Hamano - gitster - içinde taahhüt et 017b7c5, 30 Mayıs 2018)
git-credential-netrc: kabul etmek gpg seçenek
git-credential-netrc şifresini çözmek için kodlanmıştıgpg' gözetilmeksizin gpg.program seçeneği.
Bu, modern GnuPG'ye başka bir şey diyen Debian gibi dağılımlarda bir problem. 'gpg2'
Windows için adım adım talimatlar
(Git bir gpg.exe dağıtımında, ancak tam bir GPG kurulumunu kullanarak bir gpg-agent.exeGPG anahtarınızla ilişkili parolanızı ezberleyecektir.)
kurmak gpg4Win Lite, minimum gnupg komut satırı arayüzü en yeni gpg4win-vanilla-2.X.Y-betaZZ.exe) ve PATH'yi GPG kurulum dizini ile tamamlayın:
('Not alıncopy'command: Git komutu çalıştırmak için bir Bash betiğine ihtiyaç duyacak'gpg'. Dan beri gpg4win-vanilla-2 ile birlikte geliyor gpg2.exe, çoğaltmanız gerekiyor.)
GPG anahtarı oluşturun veya içe aktarın ve ona güvenin:
(Bu tuşa bir şifre yazdığınızdan emin olun.)
Bu güvene güven
Kimlik bilgisi yardım komut dosyasını, dizininizdeki bir dizine yükleyin. %PATH%:
(Evet, bu bir Bash betiğidir, ancak Go tarafından çağrılacağı için Windows üzerinde çalışacaktır.)
Net metinde bir _netrc dosyası oluşturun
('Unutma'protocol' Bölüm: 'http'veya'https'kullanacağınız URL’ye bağlı olarak.'
Bu dosyayı şifrele:
(Şimdi yapabilirsiniz silmek _netrc dosya, sadece tutmak _netrc.gpg şifrelenmiş bir.)
Şifrelenmiş dosyayı kullan:
('Not alın/': C:\path\to... hiç işe yaramaz.) (İlk başta kullanabilirsiniz -v -d neler olduğunu görmek için.)
Bundan böyle, kimlik doğrulaması gerektiren bir HTTP (S) URL'sini kullanan herhangi bir Git komutu, bunun şifresini çözecektir. _netrc.gpgİletişim kurduğunuz sunucuyla ilişkili giriş / şifreyi kullanın ve kullanın. İlk kez, GPG, dosyanın şifresini çözmek için GPG anahtarınızın parolasını sorar. Diğer zamanlarda, gpg-ajan otomatik olarak başlatıldı İlk GPG çağrısı sizin için bu parolayı sağlayacaktır.
Bu şekilde, ezberleyebilirsiniz birkaç Bir dosyadaki URL'ler / girişler / şifreler ve şifrelenmiş diskinizde saklanmasını sağlayın.
Bunu hatırlamanız gereken bir "önbellek" yardımcısından daha kolay. Burada, her bir uzaktan servisiniz için farklı bir parola hatırlatmanız ve (her oturumda bir kez) yazmanız gerekir; söz konusu parola bellekte önbelleğe alınabilir.
linux ile aynı şeyi denemek .. git config --local credential.helper "netrc -f /home/me/.netrc.gpg -v -d" ..ve "git: 'credential-netrc' değil git komutu, bkz. 'git --help' " - sunny
@sunny Bu ne curl -o c:\prgs\bin\git-credential-netrc https://raw.github.com/git/git/master/contrib/credential/netrc/git-credential-netrciçin: kopyalamanız gerekiyor git-credential-netrc yolun herhangi bir yerinde ($PATH), gitmesinin yapılabilmesi için 'credential-netrc'. - VonC
Teşekkürler bunu kaçırdı. - sunny
Şey, _netrc benim için çalışmadı bir Windows 7 PC, ama .netrc için çalıştı youtube-dl ile --netrc argüman ona geçti. - Iulian Onofrei
En iyi çözüm, en üstünde olmalıdır. - Doug713705
Kullanıcı kimlik bilgilerini bir HTTPS URL'sinde depolamak için kolay, eski moda bir yol var:
İle URL'yi değiştirebilirsiniz git remote set-url <remote-repo> <URL>
Bu yaklaşımın bariz dezavantajı, şifreyi düz metinde saklamanız gerektiğidir. Hala kullanıcı adını girebilirsiniz (https://user@github.com/...) En azından size güçlükten kurtulacaktır.
SSH'ye geçmeyi veya GitHub istemci yazılımını kullanmayı tercih edebilirsiniz.
Kullanıcı adı / şifrenin kodlanması gerekebilir, bkz. stackoverflow.com/a/34611311/3906760 - MrTux
Bir kimlik bilgisi deposu kullanın.
Git 2.11+ için OSX ve linux, git'in yerleşik kimlik deposunda kullan:
Msysgit 1.7.9+ için , Windows:
OS X kullanımında Git 1.7.9+ için:
Eminim ki bu yoldur, ama ne yazık ki bir hatayı alıyorum: git: 'credential-gnome-keyring' is not a git command. See 'git --help'. - codepleb
Teşekkürler, ama bir şekilde aynı hatayı alıyorum. Yanlış bir şey mi yapıyorum? Komutu yazarım ve hiçbir şey olmuyor. Basar basmaz, başarılı bir şekilde eklediğim kimlik bilgilerini sordum, ancak hatayı alıyorum, bunu yaptıktan sonra git komutunu değil. - codepleb
Libsecret Linux üzerinde çalışmaya başlamadan önce, şu adımları yapmanız gerekir: stackoverflow.com/a/40312117/775800 - Lavamantis
Başka bir şey - Github'da 2FA etkinleştirilmişse, şifreniz çalışmayacaktır. Ancak Github "Ayarlar" sayfanızda kişisel erişim belirteci oluşturabilir ve bu şifre sizin parolanız olarak çalışır. github.com/github/hub/issues/822 - Lavamantis
credential-libsecret 'git komutu değil - Siddharth
Bir dahaki sefere şifre ile girdiğinizde ya da çekeceğinizde Düz metin olarak .git-credentials (biraz güvensiz, ama sadece korumalı klasöre koy)
Ve işte bu sayfada belirtildiği gibi:
Windows 2.7.3 için Git için (Mart 2016): github.com/git-for-windows/git/releases?after=v2.8.4.windows.1, olurdu git config credential.helper manager yerine - VonC
OP'nin sorusunu benim görüşüme göre cevaplayan cevap budur. - Climax
Muhtemelen biraz yavaşlıyorum, ama ilk önce yardımcıyı indirmem gerektiğine dair hemen belli değildi! Adresinde credential.helper indirmeyi buldum Atlassian'ın Git depolarıyla kalıcı olarak doğrulanması, Umarım yardımcı olur.
Git'i OSX'te kimlik bilgisi önbelleğe alma ile kullanmak istiyorsanız şu adımları izleyin:
İkili git-credential-osxkeychain dosyasını indirin.
İkilinin yürütülebilir olduğundan emin olmak için aşağıdaki komutu çalıştırın:
/ Usr / local / bin dizinine koyun.
Bir GNU / Linux kurulumunda, bir ~ / .netrc de oldukça iyi çalışır:
Git'in hangi ağ kitaplıklarının kullanıldığına bağlı olabilir. HTTPS taşınması.
Ayrıca emin olun chmod 0600 ~/.netrc. - poolie
Sadece burada bir bağlantı bırakmak istiyorum Ubuntu netrc manpage. Bunu başka bir kullanıcı için (/home/git/.netrc) oluşturmam gerekti, ardından sahipliğini o kullanıcıya değiştirdim. - zacharydl
URL’nin bir parçası olarak oturum açma bilgilerini eklemeniz yeterlidir:
kullanıcı adı bir e-posta ise çalışmıyor - Anirudh Goel
e-posta kimliğinizde% 40 ile kaçmak zorunda kalacaksınız - Tarun Gupta
E-posta kimliğinde '+' varsa ne olur? Aynı kaçmayı denedim ama itme 'repo bulunamadı' dedi - killjoy
+ yerine% 2B - Tarun Gupta
Gelecekte başvurmak için: url-encode-decode.com - dviljoen
Windows için kullanabilirsiniz Git Kimlik Yöneticisi (GCM) eklentisi. Şu anda Microsoft tarafından yapılmaktadır. Güzel olan şey, şifreyi Windows Credential Store'a, düz metin olarak değil, kaydetmesidir.
Üzerinde bir yükleyici var sayfa açar projenin. Bu ayrıca resmi sürümünü yükleyecektir git-için-pencere yerleşik yönetici bilgisi ile. Github (ve diğer sunucular) için 2 faktörlü kimlik doğrulamasına izin verir. Başlangıçta giriş yapmak için bir grafik arayüzü var.
Cygwin kullanıcıları (veya resmi olarak Windows'a gitmek için kullananlar) için manuel yüklemeyi tercih edebilirsiniz. ZIP paketini sayfa açar. Paketi ayıklayın ve sonra çalıştırın install.cmd. Bu sizin için yükleyecektir ~/bin Klasör. (Emin olun ~/bin dizin, PATH'nızdadır.) Daha sonra bu komutu kullanarak yapılandırın:
Git daha sonra koşacak git-credential-manager.exe herhangi bir sunucuya doğrulanırken.
Hesabınıza giriş yapan herhangi birinin şifrenin düz metnine kolay erişimi vardır. Tek yapmaları gereken, kimlik bilgisi yöneticisine bir istek göndermek. printf "protocol=https\nhost=git.mycompany.com\n" | git credential-manager get (daha fazla detay burada). Her zaman kullanmalısın kişisel erişim belirteci bununla ve elbette GitHub hesabınızda 2FA'yı kullanın. - Curt J. Sampson