Git - Comment les utiliser.fichier netrc sur Windows pour enregistrer l'utilisateur et le mot de passe
Est-il possible d'utiliser un .fichier netrc sur Windows lorsque j'utilise Git pour cloner un dépôt distant avec HTTP et user - password?
4 réponses
est-il possible d'utiliser un fichier
.netrc
sous Windows?
Oui: vous devez:
- définissez la variable d'environnement
%HOME%
(pré-Git 2.0, n'est plus nécessaire avec Git 2.0+) - mettre un
_netrc
fichier%HOME%
Si vous utilisez Windows 7/10, dans un CMD
session, tapez:
setx HOME %USERPROFILE%
et le %HOME%
sera mis à C:\Users\"username"
".
Allez dans ce dossier ( cd %HOME%
) et créez un fichier appelé _netrc
'
Note: encore une fois, pour Windows, vous avez besoin d'un ' _netrc
' fichier, pas a ' .netrc
' fichier.
son contenu est tout à fait standard (remplacer le <examples>
par vos valeurs):
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>
Luc mentionne dans les commentaires:
en utilisant la dernière version de msysgit sur Windows 7, Je n'ai pas eu besoin de définir la variable d'environnement
HOME
. Le seul fichier_netrc
a fait l'affaire.
c'est en effet ce que j'ai mentionné dans " essayer de " install
"github, .ssh
dir not there ":
git-cmd.bat
inclus dans msysgit n'définir le %HOME%
variable d'environnement:
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
"
Cependant, j'ai répondu que netrc
est utilisé par les curl
, et travaille pour le protocole HTTP, comme indiqué dans cet exemple (cherchez " netrc
' de la page): . Également utilisé avec le protocole HTTP ici: " _netrc
/ .netrc
alternative à cURL
".
un piège courant avec le support de netrc
sur Windows est que git va contourner en l'utilisant si une url https origine spécifie un nom d'utilisateur.
par exemple, si votre fichier .git/config
contient:
[remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = https://bob@code.google.com/p/my-project/
Git ne résoudra pas vos justificatifs d'identité via _netrc
, pour corriger cette supprimer votre nom d'utilisateur, comme si:
[remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = https://code.google.com/p/my-project/
Alternative solution: With Git version 1.7.9+ (janvier 2012): This answer from Mark Longair details the credential cache mechanism which aussi vous permet de et non stocker votre mot de passe en clair comme indiqué ci-dessous.
Avec Git 1.8.3 (Avril 2013):
vous pouvez maintenant utiliser un crypté .netrc (avec gpg
).
Sous Windows: %HOME%/_netrc
( _
, pas .
')
Un nouvelle lecture seule identification d'assistance (dans
contrib/
) pour interagir avec l' Les fichiers.netrc/.authinfo
ont été ajoutés.
ce script vous permettrait de utiliser des fichiers netrc cryptés gpg , en évitant la question d'avoir vos justificatifs stockés dans un fichier texte simple.
Les fichiersavec l'extension
.gpg
seront déchiffrés par GPG avant l'analyse.
Les arguments multiples-f
sont corrects. Ils sont traités dans l'ordre, et la première correspondance l'entrée trouvée est retournée via le protocole d'aide aux justificatifs d'identité.quand aucune option
-f
n'est donnée,.authinfo.gpg
,.netrc.gpg
,.authinfo
, et les fichiers.netrc
de votre répertoire personnel sont utilisés dans cet ordre.
pour activer ce helper credential:
git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'
(notez que Git préparera "
git-credential-
" au nom de l'assistant et le cherchera dans le chemin.)
# 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'
voir un exemple complet à " y a-t-il un moyen de ne pas taper de mot de passe en utilisant https:// github
"
avec Git 2.18+ (juin 2018), vous pouvez maintenant personnaliser le programme GPG utilisé pour déchiffrer le fichier crypté .netrc
.
Voir commettre 786ef50 , commettre f07eeed (12 Mai 2018) par Luis Marsano ( ` ) .
(fusionné par Junio C Hamano -- gitster
-- dans commit 017b7c5 , 30 mai 2018)
git-credential-netrc
: acceptergpg
option
git-credential-netrc
a été codé en dur pour être déchiffré avec"gpg
" indépendamment de le gpg.option de programme.
C'est un problème sur les distributions comme Debian qui appellent "GnuPG moderne" quelque chose d'autre, commegpg2
vous pouvez également installer Git Credential Manager pour Windows pour enregistrer les mots de passe Git dans Windows Credential manager au lieu de _netrc
. C'est une façon plus sûre de stocker les mots de passe.
cela permettra à Git de s'authentifier sur HTTPS en utilisant .netrc
:
- le fichier doit être nommé
_netrc
et situé dansc:\Users\<username>
. - vous devrez définir une variable d'environnement appelée
HOME=%USERPROFILE%
(définir des variables d'environnement à l'échelle du système en utilisant l'option Système dans le panneau de configuration. Selon la version de Windows, vous pouvez avoir besoin de sélectionner "Options avancées".). - le mot de passe stocké dans le Le fichier
_netrc
ne peut pas contenir d'espaces (le fait de citer le mot de passe ne fonctionnera pas).
je poste une façon d'utiliser _netrc
pour télécharger des documents à partir du site www.course.com.
si quelqu'un va utiliser le coursera-dl Pour télécharger les documents open-class sur www.coursera.com, et sur le système D'exploitation Windows quelqu'un veut utiliser un fichier comme ".netrc "qui est dans le même système D'exploitation Unix pour ajouter l'option -n
au lieu de -U <username> -P <password>
pour plus de commodité. Il / elle peut le faire comme ceci:
-
chemin d'accès sur Windows OS:
setx HOME %USERPROFILE%
(se référer à réponse de VonC ). Il sauvera la variable d'environnementHOME
commeC:\Users\"username"
. -
localisez dans le répertoire
C:\Users\"username"
et créez un nom de fichier_netrc
. NOTE: il n'y a pas de suffixe. le contenu est comme:machine coursera-dl login <user> password <pass>
-
utilisez une commande comme
coursera-dl -n --path PATH <course name>
pour télécharger le matériaux de classe. Plus de détails sur les options coursera-dl pour cette page .