Git-jak używać.plik netrc w systemie Windows, aby zapisać użytkownika i hasło

Czy możliwe jest użycie a .plik netrc w systemie Windows Kiedy używam Gita do sklonowania zdalnego repozytorium przy użyciu HTTP i hasła użytkownika?

Author: Peter Mortensen, 2011-05-17

4 answers

Czy jest możliwe użycie pliku .netrc w systemie Windows?

Tak: musisz:

  • zdefiniuj zmienną środowiskową %HOME% (pre-Git 2.0, nie jest już potrzebna z Git 2.0+)
  • umieść _netrc plik w %HOME%
Jeśli używasz systemu Windows 7/10, w sesji CMD, Wpisz:
setx HOME %USERPROFILE%

I %HOME% zostaną ustawione na " C:\Users\"username"".
Go that that folder (cd %HOME%) and make a file called '_netrc'

Uwaga: ponownie, Dla Windows, potrzebujesz '_netrc' plik, nie A' .netrc ' Plik.

Jest to bardzo proste, ponieważ jest to bardzo proste i łatwe w obsłudze.]}
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>

Łukasz wspomina w komentarzach:

Używając najnowszej wersji msysgit na Windows 7, nie musiałem ustawiać zmiennej środowiskowej HOME. Sam plik _netrc załatwił sprawę.

To jest rzeczywiście to, co wspomniałem w "próbuje "install" github, .ssh dir nie tam":
git-cmd.bat zawarte w msysgit ustawia zmienną środowiskową %HOME%:

@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%

爱国者 wierzy w komentarze, że "wydaje się, że nie będzie działać dla protokołu HTTP"

Odpowiedziałem jednak, że netrc jest używany przez curl i działa dla protokołu HTTP, jak pokazano w ten przykład (poszukaj 'netrc' na stronie): . Używany również z protokołem HTTP tutaj: "_netrc/.netrc alternatywa dla cURL".


Wspólną pułapką z netrc obsługą Windows jest ten git omija go, jeśli źródłowy adres URL https określa nazwę użytkownika.

Na przykład, jeśli plik .git/config zawiera:

[remote "origin"]
     fetch = +refs/heads/*:refs/remotes/origin/*
     url = https://[email protected]/p/my-project/

Git nie rozwiąże Twoich danych uwierzytelniających poprzez _netrc, aby to naprawić Usuń swoją nazwę użytkownika, tak:

[remote "origin"]
     fetch = +refs/heads/*:refs/remotes/origin/*
     url = https://code.google.com/p/my-project/

Alternatywne rozwiązanie: z git Wersja 1.7.9+ (styczeń 2012): ta odpowiedź z Mark Longair szczegóły mechanizm Cache poświadczeń które również pozwala nie przechowywać swoje hasło w postaci zwykłego tekstu, jak pokazano poniżej.


Z Git 1.8.3 (Kwiecień 2013):

Możesz teraz użyć zaszyfrowanego .netrc (z gpg).
Na Windows: %HOME%/_netrc (_, nie '.')

A nowy pomocnik poświadczeń tylko do odczytu (w contrib/) do interakcji z plikami .netrc/.authinfo został dodany.

Ten skrypt pozwoli Ci używać szyfrowanego GPG netrc pliki , unikając problemu przechowywania poświadczeń w zwykłym pliku tekstowym.

Pliki z rozszerzeniem .gpg zostaną odszyfrowane przez GPG przed analizą.
Wiele argumentów -f jest w porządku. Są one przetwarzane w kolejności, a pierwszy znaleziony pasujący wpis jest zwracany za pośrednictwem protokołu credential helper protocol.

Gdy nie podano opcji -f , .authinfo.gpg, .netrc.gpg, .authinfo, i .netrc pliki w katalogu domowym są używane w tej kolejności.

To włącz ten Pomocnik poświadczenia:

git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'

(zauważ, że Git przepisze "git-credential- " do nazwy helpera i będzie szukał jej w ścieżce.)

# 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'

Zobacz pełny przykład w " czy istnieje sposób na pominięcie wpisywania hasła podczas używania https:// github"


Z Git 2.18+ (czerwiec 2018), możesz teraz dostosować program GPG używany do odszyfrowywania zaszyfrowanego pliku .netrc.

Zobacz commit 786ef50, commit f07eeed (12 maja 2018) by Luis Marsano (`) .
(dodany przez Junio C Hamano -- gitster -- w commit 017b7c5, 30 maja 2018)

git-credential-netrc: accept gpg opcja

git-credential-netrc został zakodowany na twardo, aby odszyfrować za pomocą "gpg " niezależnie od gpg.opcja programu.
Jest to problem na dystrybucjach takich jak Debian, które nazywają nowoczesne GnuPG czymś innym, jak 'gpg2'

 187
Author: VonC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-29 06:10:13

Możesz również zainstalować Git Credential Manager Dla Windows, aby zapisać hasła Git w Menedżerze poświadczeń Windows zamiast _netrc. Jest to bezpieczniejszy sposób przechowywania haseł.

 34
Author: KindDragon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-28 19:21:54

Pozwoli to Git uwierzytelnić się na HTTPS używając .netrc:

  • plik powinien mieć nazwę _netrc i znajdować się w c:\Users\<username>.
  • będziesz musiał ustawić zmienną środowiskową o nazwie HOME=%USERPROFILE% (ustawić systemowe zmienne środowiskowe za pomocą opcji System w Panelu sterowania. W zależności od wersji systemu Windows konieczne może być wybranie opcji "Opcje zaawansowane".).
  • hasło zapisane w pliku _netrc nie może zawierać spacji(cytowanie hasła nie zadziała).
 9
Author: EBlake,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-01 04:52:31

Zamieszczam sposób wykorzystania _netrc do pobierania materiałów ze strony www.course.com.

Jeśli ktoś ma zamiar skorzystać z coursera-dl do pobrania materiałów klasy otwartej na www.coursera.com, a na systemie operacyjnym Windows ktoś chce użyć pliku typu "".netrc", który jest w systemie like-Unix, aby dodać opcję -n zamiast -U <username> -P <password> dla wygody. On / ona może to zrobić tak:

  1. Sprawdź ścieżkę domową w systemie operacyjnym Windows: setx HOME %USERPROFILE% (Zobacz odpowiedź VonC ). Uratuje zmienna środowiskowa HOME jako C:\Users\"username".

  2. Zlokalizuj w katalogu C:\Users\"username" i utwórz nazwę pliku _netrc.uwaga: nie ma żadnego przyrostka. treść jest jak: machine coursera-dl login <user> password <pass>

  3. Użyj polecenia coursera-dl -n --path PATH <course name>, aby pobrać materiały klasowe. Więcej szczegółów opcji coursera-dl dla tej strony .

 1
Author: BO.LI,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-14 16:45:09