Ist es möglich, eine .netrc-Datei unter Windows zu verwenden, wenn ich Git verwende, um ein Remote-Repository mit HTTP und Benutzerpasswort zu klonen?
quelle
Ist es möglich, eine .netrc-Datei unter Windows zu verwenden, wenn ich Git verwende, um ein Remote-Repository mit HTTP und Benutzerpasswort zu klonen?
Ist es möglich, eine
.netrc
Datei unter Windows zu verwenden?
Ja, du musst:
%HOME%
(vor Git 2.0, wird mit Git 2.0+ nicht mehr benötigt)_netrc
Datei ein%HOME%
Wenn Sie Windows 7/10 verwenden, geben Sie in einer CMD
Sitzung Folgendes ein :
setx HOME %USERPROFILE%
und das %HOME%
wird auf ' C:\Users\"username"
' gesetzt.
Gehen Sie in diesen Ordner ( cd %HOME%
) und erstellen Sie eine Datei mit dem Namen ' _netrc
'
Hinweis: Für Windows benötigen Sie erneut eine ' _netrc
' Datei, keine ' .netrc
' Datei.
Der Inhalt ist Standard (Ersetzen Sie den <examples>
durch Ihre Werte):
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>
Luke erwähnt in den Kommentaren:
Mit der neuesten Version von msysgit unter Windows 7 musste ich die
HOME
Umgebungsvariable nicht festlegen . Die_netrc
Datei allein hat es geschafft.
Dies ist in der Tat das, was ich in " Versuch," install
"Github, .ssh
dir nicht da " erwähnt habe:
git-cmd.bat
In msysgit enthalten setzt die %HOME%
Umgebungsvariable:
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
爱国者 glaubt an die Kommentare, dass "es scheint, dass es für das http-Protokoll nicht funktioniert"
Ich habe jedoch geantwortet, dass netrc
das curl
HTTP-Protokoll verwendet wird und für dieses funktioniert, wie in diesem Beispiel gezeigt (suchen Sie auf netrc
der Seite nach ' ') :. Wird hier auch mit dem HTTP-Protokoll verwendet: " _netrc
/ .netrc
alternative tocURL
".
Eine gemeinsame Falle mit mit netrc
Unterstützung unter Windows ist, dass Git die Verwendung umgeht, wenn eine ursprüngliche https-URL einen Benutzernamen angibt.
Zum Beispiel, wenn Ihr .git/config
Datei enthält:
[entfernter "Ursprung"] fetch = + refs / heads / *: refs / remotes / origin / * url = https: //[email protected]/p/my-project/
Git wird Ihre Anmeldeinformationen nicht über auflösen. _netrc
Um dies zu beheben, entfernen Sie Ihren Benutzernamen wie folgt :
[entfernter "Ursprung"] fetch = + refs / heads / *: refs / remotes / origin / * url = https://code.google.com/p/my-project/
Alternative Lösung: Mit Git-Version 1.7.9+ (Januar 2012): Diese Antwort von Mark Longair beschreibt den Cache-Mechanismus für Anmeldeinformationen, mit dem Sie Ihr Kennwort auch nicht wie unten gezeigt im Klartext speichern können.
Mit Git 1.8.3 (April 2013):
Sie können jetzt eine verschlüsselte .netrc (mit gpg
) verwenden.
Unter Windows: %HOME%/_netrc
( _
, nicht ' .
')
Ein neuer schreibgeschützter Helfer für Anmeldeinformationen (in
contrib/
) für die Interaktion mit den.netrc/.authinfo
Dateien wurde hinzugefügt.
Mit diesem Skript können Sie GPG-verschlüsselte Netrc-Dateien verwenden , um das Problem zu vermeiden, dass Ihre Anmeldeinformationen in einer Nur- Text-Datei gespeichert werden.
Dateien mit der
.gpg
Erweiterung werden vor dem Parsen von GPG entschlüsselt.
Mehrere-f
Argumente sind in Ordnung. Sie werden der Reihe nach verarbeitet, und der erste gefundene übereinstimmende Eintrag wird über das Hilfsprotokoll für Anmeldeinformationen zurückgegeben.Wenn keine
-f
Option angegeben ist.authinfo.gpg
,.netrc.gpg
werden.authinfo
,,, und.netrc
Dateien in Ihrem Home-Verzeichnis in dieser Reihenfolge verwendet.
So aktivieren Sie diesen Anmeldeinformations-Helfer:
git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'
(Beachten Sie, dass Git
git-credential-
dem Namen des Helfers " " voranstellt und im Pfad danach sucht.)
# 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'
Ein vollständiges Beispiel finden Sie unter " Gibt es eine Möglichkeit, die Kennworteingabe bei Verwendung zu überspringen?https:// github
"
Mit Git 2.18+ (Juni 2018) können Sie jetzt das GPG-Programm anpassen, mit dem die verschlüsselte .netrc
Datei entschlüsselt wird.
Siehe Commit 786ef50 , Commit f07eeed (12. Mai 2018) von Luis Marsano (``) .
(Zusammengeführt von Junio C Hamano - gitster
- in Commit 017b7c5 , 30. Mai 2018)
git-credential-netrc
:gpg
Option akzeptieren
git-credential-netrc
wurde fest codiert, um mit 'gpg
' unabhängig von der Option gpg.program zu entschlüsseln .
Dies ist ein Problem bei Distributionen wie Debian, die das moderne GnuPG als etwas anderes bezeichnen, wie 'gpg2
'
HOME
Umgebungsvariable ist wichtig, da sie unter Windows nicht standardmäßig definiert ist. Sie können diese Variable auf ein beliebiges Verzeichnis einstellen (es muss nicht seinC:\users\mylogin
): Bei der Arbeit habe ich sie beispielsweise auf meine private Remote-Festplatte festgelegt, die meinem Windows-Konto zugeordnet ist, sodass ich Desktops wechseln kann, ohne verlieren zu müssen meine.ssh
oder_netrc
Einstellungen.http.proxy
in Ihrer Umgebung Variablen definieren. Oder im Gegenteil, Sie fügen Ihren Server einerno_proxy
Variablen hinzu, um zu vermeiden, dass Sie versuchen, über WAN auf einen LAN-Server zuzugreifen.msysgit
Windows 7 musste ich dieHOME
Umgebungsvariable nicht festlegen . Die_netrc
Datei allein hat es geschafft.Sie können den Git Credential Manager für Windows auch installieren , um Git-Kennwörter anstelle des Windows Credentials Manager zu speichern
_netrc
. Dies ist eine sicherere Methode zum Speichern von Kennwörtern.quelle
.netrc
Datei speichern. Sie müssen diese Anmeldeinformationen nicht einmal während der Sitzung eingeben.Dadurch kann sich Git unter HTTPS authentifizieren mit
.netrc
:_netrc
und sich in befindenc:\Users\<username>
.HOME=%USERPROFILE%
festlegen (systemweite Umgebungsvariablen mithilfe der Option System in der Systemsteuerung festlegen. Abhängig von der Windows-Version müssen Sie möglicherweise "Erweiterte Optionen" auswählen.)._netrc
Datei gespeicherte Kennwort darf keine Leerzeichen enthalten (das Angeben des Kennworts funktioniert nicht).quelle
Ich veröffentliche eine Möglichkeit zum
_netrc
Herunterladen von Materialien von der Website www.course.com.Wenn jemand das coursera-dl verwenden möchte, um die Materialien der offenen Klasse auf www.coursera.com herunterzuladen, und unter dem Windows-Betriebssystem möchte jemand eine Datei wie ".netrc" verwenden, die sich unter einem Unix-Betriebssystem befindet, um das hinzuzufügen Option
-n
statt-U <username> -P <password>
für die Bequemlichkeit. Er / sie kann es so machen:Überprüfen Sie den Home-Pfad unter Windows:
setx HOME %USERPROFILE%
(siehe Antwort von VonC ). DieHOME
Umgebungsvariable wird als gespeichertC:\Users\"username"
.Suchen Sie im Verzeichnis
C:\Users\"username"
und erstellen Sie einen Dateinamen_netrc
. HINWEIS: Es gibt KEIN Suffix. Der Inhalt ist wie folgt:machine coursera-dl login <user> password <pass>
Verwenden Sie einen Befehl
coursera-dl -n --path PATH <course name>
, um die Klassenmaterialien herunterzuladen. Weitere Details zu coursera-dl-Optionen für diese Seite .quelle