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?
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%
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.
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
: acceptgpg
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
'
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ł.
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ę wc:\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).
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:
Sprawdź ścieżkę domową w systemie operacyjnym Windows:
setx HOME %USERPROFILE%
(Zobacz odpowiedź VonC ). Uratuje zmienna środowiskowaHOME
jakoC:\Users\"username"
.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>
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 .
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