Est-il possible d'utiliser un .netrc
sous Windows ?
Oui : vous devez :
- définir une variable d'environnement
%HOME%
(pré-Git 2.0, plus nécessaire avec Git 2.0+)
- mettre un
_netrc
dans %HOME%
Si vous utilisez Windows 7/10, dans une CMD
session, type :
setx HOME %USERPROFILE%
et le %HOME%
sera réglé sur ' 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 assez standard (remplacer le <examples>
avec vos valeurs) :
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>
Luke dans les commentaires :
En utilisant la dernière version de msysgit sous Windows 7, je n'ai pas eu besoin de configurer l'attribut HOME
variable d'environnement. Le site _netrc
Le fichier seul a fait l'affaire.
C'est en effet ce que j'ai mentionné dans " Essayer de " install
" github, .ssh
dir pas là " :
git-cmd.bat
incluse dans msysgit définit l'option %HOME%
variable d'environnement :
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
爱国者 croit dans les commentaires que "il semble que cela ne fonctionnera pas pour le protocole http".
Cependant, j'ai répondu que netrc
est utilisé par curl
et fonctionne pour le protocole HTTP, comme le montre l'exemple suivant cet exemple (cherchez ' netrc
dans la page) : . Utilisé également avec le protocole HTTP ici : " _netrc
/ .netrc
alternative à cURL
".
Un piège commun avec avec netrc
sous Windows est que git ne l'utilisera pas si une url https d'origine spécifie un nom d'utilisateur.
Par exemple, si votre .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 informations d'identification par l'intermédiaire de _netrc
Pour résoudre ce problème, supprimez votre nom d'utilisateur, comme suit :
\[remote "origin"\]
fetch = +refs/heads/\*:refs/remotes/origin/\*
url = https://code.google.com/p/my-project/
Solution alternative : Avec Version git 1.7.9+. (janvier 2012) : Cette réponse de Mark Longair détaille le mécanisme de cache des justificatifs d'identité dont également vous permet de pas stockez votre mot de passe en texte clair comme indiqué ci-dessous.
Avec Git 1.8.3 (avril 2013) :
Vous pouvez maintenant utiliser un .netrc crypté (avec gpg
).
Sous Windows : %HOME%/_netrc
( _
et non .
')
A nouvelle aide d'accréditation en lecture seule (en contrib/
) pour interagir avec le .netrc/.authinfo
a été ajouté.
Ce script vous permettra de utiliser les fichiers netrc chiffrés par gpg ce qui permet d'éviter que vos informations d'identification ne soient stockées dans un fichier texte brut.
Les fichiers avec le .gpg
sera décryptée par GPG avant d'être analysée.
Multiple -f
sont acceptés. Ils sont traités dans l'ordre, et la première entrée correspondante trouvée est renvoyée via le protocole d'aide à l'accréditation.
Quand aucun -f
est donnée, .authinfo.gpg
, .netrc.gpg
, .authinfo
et .netrc
dans votre répertoire personnel sont utilisés dans cet ordre.
Pour activer cet assistant d'accréditation :
git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'
(Notez que Git ajoutera en préambule " git-credential-
" au nom de l'aide et le rechercher 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 sur " Existe-t-il un moyen de ne pas avoir à taper le mot de passe lorsque l'on utilise l'application https:// github
"
Avec Git 2.18+ (juin 2018), vous pouvez désormais personnaliser le programme GPG utilisé pour décrypter le chiffré. .netrc
fichier.
Voir commit 786ef50 , commettre f07eeed (12 mai 2018) par Luis Marsano (``) .
(fusionné par Junio C Hamano -- gitster
-- en commettre 017b7c5 , 30 mai 2018)
git-credential-netrc
: accepter gpg
option
git-credential-netrc
était codé en dur pour être décrypté avec ' gpg
indépendamment de l'option gpg.program.
C'est un problÃ?me sur les distributions comme Debian qui appellent GnuPG moderne autrement, comme ' gpg2
'