Git'i HTTP ve kullanıcı şifresi ile uzak bir havuzu klonlamak için kullanırken Windows'ta bir .netrc dosyası kullanmak mümkün müdür?
Git'i HTTP ve kullanıcı şifresi ile uzak bir havuzu klonlamak için kullanırken Windows'ta bir .netrc dosyası kullanmak mümkün müdür?
Yanıtlar:
.netrcWindows'da dosya kullanmak mümkün mü ?
Evet: Yapmanız gerekenler:
%HOME%(Git 2.0 öncesi, Git 2.0+ ile artık gerekmez)_netrcdosya koy%HOME%Windows 7/10 kullanıyorsanız bir CMDoturumda şunu yazın:
setx HOME %USERPROFILE%
ve %HOME%' C:\Users\"username"' olarak ayarlanacaktır .
Bu klasöre ( cd %HOME%) gidin ve ' _netrc' adında bir dosya oluşturun
Not: Yine, Windows için, bir ' _netrc' dosyasına değil, bir ' .netrc' dosyasına ihtiyacınız vardır.
İçeriği oldukça standarttır ( <examples>değerini değerlerinizle değiştirin ):
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>
Luke yorumlarda şöyle diyor:
Windows 7'de msysgit'in en son sürümünü kullanarak
HOMEortam değişkenini ayarlamam gerekmiyordu . Sadece_netrcdosya hile yaptı.
Bu benim "sözü de buydu çalışılıyor‘ install’github, .sshorada dir :"
git-cmd.batkümesini nasıl msysgit dahil %HOME%ortam değişkeni:
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
爱国者 "http protokolü için işe yaramayacak gibi görünüyor" yorumlarına inanıyor
Ancak, bu örnekte gösterildiği gibi HTTP protokolü netrctarafından kullanılan curlve bu protokol için çalışan cevap verdi ( netrcsayfada ' ' arayın ):. Ayrıca burada HTTP protokolü ile kullanılır: " _netrc/ .netrcalternatificURL ".
netrcWindows destekli ortak bir tuzak, bir başlangıç https url'si bir kullanıcı adı belirtirse git'in onu atlamasıdır.
Örneğin, .git/configdosyanız şunları içeriyorsa:
[uzak "başlangıç noktası"]
fetch = + refs / heads / *: refs / uzaktan kumandalar / orijin / *
url = https: //bob@code.google.com/p/my-project/
Git, _netrckullanıcı adınızı kaldırmak için şu şekilde kimlik bilgilerinizi çözmez :
[uzak "başlangıç noktası"]
fetch = + refs / heads / *: refs / uzaktan kumandalar / orijin / *
url = https://code.google.com/p/my-project/
Alternatif çözüm: With git sürümü 1.7.9+ (Ocak 2012): Bu cevap den Mark Longair ayrıntıları kimlik bilgisi önbellek mekanizmasını da sen izin verir değil aşağıda gösterildiği gibi düz metin olarak şifrenizi saklayın.
İle Git 1.8.3 (Nisan 2013):
Artık şifreli bir .netrc (ile gpg) kullanabilirsiniz.
Windows'ta: %HOME%/_netrc( _' .' değil )
Bir yeni salt okunur kimlik yardımcı (içinde
contrib/etkileşimde bulunmak için).netrc/.authinfodosyaları eklenmiştir.
Bu komut dosyası , kimlik bilgilerinizin düz metin dosyasında depolanması sorununu önleyerek gpg şifreli netrc dosyalarını kullanmanıza izin verir .
Uzantıya sahip dosyaların
.gpgayrıştırılmadan önce GPG tarafından şifresi çözülür.
Birden çok-fargüman uygun. Sırayla işlenirler ve bulunan ilk eşleşen girdi kimlik bilgileri yardımcı protokolü aracılığıyla döndürülür.Hiçbir zaman
-fseçeneği belirtilmişse,.authinfo.gpg,.netrc.gpg,.authinfo, ve.netrcana dizininizde dosyalar bu sırada kullanılır.
Bu kimlik bilgisi yardımcısını etkinleştirmek için:
git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'
(Git'in
git-credential-yardımcı adın başına " " başlayacağını ve yoldan arayacağını unutmayın.)
# and if you want lots of debugging info:
git config credential.helper '$shortname -f AUTHFILE -d'
#or to see the files opened and data found:
git config credential.helper '$shortname -f AUTHFILE -v'
" Kullanırken şifre yazmayı atlamanın bir yolu var mı?https:// github "
Git 2.18+ (Haziran 2018) ile artık şifrelenmiş .netrcdosyanın şifresini çözmek için kullanılan GPG programını özelleştirebilirsiniz .
Bkz 786ef50 işlemek , f07eeed taahhüt tarafından (12 May 2018) ( ``) Luis Marsano .
(Göre Birleştirilmiş - Junio Cı Hamano gitster- içinde 017b7c5 tamamlama 2018, 30 Mayıs)
git-credential-netrc:gpgseçeneği kabul et
git-credential-netrcgpggpg.program seçeneğinden bağımsız olarak ' ' ile şifresini çözmek zorlaştı.
Bu, Debian gibi modern GnuPG'yi başka bir şey olarak adlandıran dağıtımlarda bir sorundur 'gpg2'
http.proxyOrtam değişkenlerinizde bir tanımlamanız gerekebilir . Aksine, sunucunuzu bir no_proxydeğişkene eklemek, WAN üzerinden bir LAN sunucusuna erişmeye çalışmaktan kaçınmak için.
msysgitWindows 7'de en son sürümünü kullanarak HOMEortam değişkenini ayarlamam gerekmiyordu . Sadece _netrcdosya hile yaptı.
Git şifrelerini Windows kimlik bilgileri yöneticisine kaydetmek yerine Windows için Git Kimlik Bilgisi Yöneticisi'ni de yükleyebilirsiniz _netrc. Bu, şifreleri saklamanın daha güvenli bir yoludur.
.netrcdosyada saklayabilirsiniz . Bu kimlik bilgilerini oturum sırasında bir kez bile girmeniz gerekmez.
Bu Git'in HTTPS'de kimlik doğrulamasını yapmasına izin verir .netrc:
_netrcve içinde bulunmalıdır c:\Users\<username>.HOME=%USERPROFILE%(kontrol panelindeki Sistem seçeneğini kullanarak sistem genelindeki ortam değişkenlerini ayarlayın. Windows sürümüne bağlı olarak, "Gelişmiş Seçenekler" i seçmeniz gerekebilir.)._netrcDosyada saklanan parola boşluk içeremez (parolanın girilmesi işe yaramaz)._netrcWww.course.com sitesinden materyal indirmek için kullanmanın bir yolunu gönderiyorum.
Birisi www.coursera.com adresindeki açık sınıf materyalleri indirmek için coursera-dl'yi kullanacaksa ve Windows işletim sisteminde birisi, ".netrc" gibi, Unix OS'de bulunan bir dosyayı seçeneği -nyerine -U <username> -P <password>kolaylık. Bunu şu şekilde yapabilir:
Windows işletim sisteminde ev yolunu kontrol edin: setx HOME %USERPROFILE%( VonC'nin cevabına bakın ). HOMEOrtam değişkenini olarak kaydedecektir C:\Users\"username".
Dizinde bulun C:\Users\"username"ve bir dosya adı oluşturun _netrc. NOT: herhangi bir sonek DEĞİLDİR.
içerik şöyle:machine coursera-dl login <user> password <pass>
coursera-dl -n --path PATH <course name>Sınıf materyallerini indirmek için bir komut kullanın . Bu sayfa için diğer coursera-dl seçenekleri ayrıntıları .
HOMEWindows'ta varsayılan olarak tanımlanmadığı için ortam değişkeni önemlidir. Bu değişkeni istediğiniz dizine ayarlayabilirsiniz (olması gerekmezC:\users\mylogin): örneğin, işte, Windows hesabımla ilişkili özel uzak diskime ayarladım, bu da masaüstlerini kaybetmeden değiştirebilmeme izin veriyor benim.sshveya_netrcayarlar.