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:
.netrc
Windows'da dosya kullanmak mümkün mü ?
Evet: Yapmanız gerekenler:
%HOME%
(Git 2.0 öncesi, Git 2.0+ ile artık gerekmez)_netrc
dosya koy%HOME%
Windows 7/10 kullanıyorsanız bir CMD
oturumda ş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
HOME
ortam değişkenini ayarlamam gerekmiyordu . Sadece_netrc
dosya hile yaptı.
Bu benim "sözü de buydu çalışılıyor‘ install
’github, .ssh
orada dir :"
git-cmd.bat
kü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ü netrc
tarafından kullanılan curl
ve bu protokol için çalışan cevap verdi ( netrc
sayfada ' ' arayın ):. Ayrıca burada HTTP protokolü ile kullanılır: " _netrc
/ .netrc
alternatificURL
".
netrc
Windows destekli ortak bir tuzak, bir başlangıç https url'si bir kullanıcı adı belirtirse git'in onu atlamasıdır.
Örneğin, .git/config
dosyanı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, _netrc
kullanı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/.authinfo
dosyaları 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
.gpg
ayrıştırılmadan önce GPG tarafından şifresi çözülür.
Birden çok-f
argü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
-f
seçeneği belirtilmişse,.authinfo.gpg
,.netrc.gpg
,.authinfo
, ve.netrc
ana 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ş .netrc
dosyanı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
:gpg
seçeneği kabul et
git-credential-netrc
gpg
gpg.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.proxy
Ortam değişkenlerinizde bir tanımlamanız gerekebilir . Aksine, sunucunuzu bir no_proxy
değişkene eklemek, WAN üzerinden bir LAN sunucusuna erişmeye çalışmaktan kaçınmak için.
msysgit
Windows 7'de en son sürümünü kullanarak HOME
ortam değişkenini ayarlamam gerekmiyordu . Sadece _netrc
dosya 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.
.netrc
dosyada 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
:
_netrc
ve 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.)._netrc
Dosyada saklanan parola boşluk içeremez (parolanın girilmesi işe yaramaz)._netrc
Www.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 -n
yerine -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 ). HOME
Ortam 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ı .
HOME
Windows'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.ssh
veya_netrc
ayarlar.