¿Es posible usar un archivo .netrc en Windows cuando estoy usando Git para clonar un repositorio remoto con HTTP y contraseña de usuario?
¿Es posible usar un archivo .netrc en Windows cuando estoy usando Git para clonar un repositorio remoto con HTTP y contraseña de usuario?
Respuestas:
¿Es posible usar un
.netrc
archivo en Windows?
Si, debes:
%HOME%
(pre-Git 2.0, ya no es necesario con Git 2.0+)_netrc
archivo en%HOME%
Si está utilizando Windows 7/10, en una CMD
sesión, escriba:
setx HOME %USERPROFILE%
y %HOME%
se establecerá en ' C:\Users\"username"
'.
Ve a esa carpeta ( cd %HOME%
) y crea un archivo llamado ' _netrc
'
Nota: Nuevamente, para Windows, necesita un _netrc
archivo ' ', no un .netrc
archivo ' '.
Su contenido es bastante estándar (Reemplace el <examples>
con sus valores):
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>
Lucas menciona en los comentarios:
Utilizando la última versión de msysgit en Windows 7, no necesitaba configurar la
HOME
variable de entorno. El_netrc
archivo solo hizo el truco.
Esto es de hecho lo que mencioné en " Intentando" install
"github, .ssh
dir no allí ":
git-cmd.bat
incluido en msysgit establece la %HOME%
variable de entorno:
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
爱国者 cree en los comentarios que "parece que no funcionará para el protocolo http"
Sin embargo, respondí que netrc
es utilizado por curl
, y funciona para el protocolo HTTP, como se muestra en este ejemplo (busque ' netrc
' en la página):. También se utiliza con el protocolo HTTP aquí: " _netrc
/ .netrc
alternativa acURL
".
Una trampa común con netrc
soporte en Windows es que git omitirá su uso si una URL https de origen especifica un nombre de usuario.
Por ejemplo, si su .git/config
archivo contiene:
["origen" remoto] fetch = + refs / heads / *: refs / remotes / origin / * url = https: //bob@code.google.com/p/my-project/
Git no resolverá sus credenciales a través de _netrc
, para solucionar esto elimine su nombre de usuario, de esta manera:
["origen" remoto] fetch = + refs / heads / *: refs / remotes / origin / * url = https://code.google.com/p/my-project/
Solución alternativa: con git versión 1.7.9+ (enero de 2012): esta respuesta de Mark Longair detalla el mecanismo de caché de credenciales que también le permite no almacenar su contraseña en texto sin formato como se muestra a continuación.
Con Git 1.8.3 (abril de 2013):
Ahora puede usar un .netrc cifrado (con gpg
).
En Windows: %HOME%/_netrc
( _
, no ' .
')
Se ha agregado una nueva ayuda de credencial de solo lectura (in
contrib/
) para interactuar con los.netrc/.authinfo
archivos.
Ese script le permitiría usar archivos netrc cifrados con gpg , evitando el problema de tener sus credenciales almacenadas en un archivo de texto sin formato.
.gpg
GPG descifrará los archivos con la extensión antes de analizarlos.
Múltiples-f
argumentos están bien. Se procesan en orden, y la primera entrada coincidente encontrada se devuelve a través del protocolo auxiliar de credenciales.Cuando no
-f
se le da la opción,.authinfo.gpg
,.netrc.gpg
,.authinfo
, y.netrc
los archivos en el directorio de inicio se utilizan en este orden.
Para habilitar este asistente de credenciales:
git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'
(Tenga en cuenta que Git antepondrá "
git-credential-
" al nombre del ayudante y lo buscará en la ruta).
# 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'
Vea un ejemplo completo en " ¿Hay alguna manera de omitir la escritura de contraseñas al usarhttps:// github
"
Con Git 2.18+ (junio de 2018), ahora puede personalizar el programa GPG utilizado para descifrar el .netrc
archivo cifrado .
Ver commit 786ef50 , commit f07eeed (12 de mayo de 2018) por Luis Marsano (``) .
(Fusionada por Junio C Hamano - gitster
- en commit 017b7c5 , 30 de mayo de 2018)
git-credential-netrc
: aceptargpg
opción
git-credential-netrc
fue codificado para descifrar con 'gpg
' independientemente de la opción gpg.program.
Este es un problema en distribuciones como Debian que llaman a GnuPG moderno algo más, como 'gpg2
'
http.proxy
en sus variables de entorno. O, por el contrario, para agregar su servidor a una no_proxy
variable, para evitar intentar acceder a un servidor LAN a través de WAN.
msysgit
Windows 7, no necesitaba configurar la HOME
variable de entorno. El _netrc
archivo solo hizo el truco.
También puede instalar Git Credential Manager para Windows para guardar las contraseñas de Git en el administrador de credenciales de Windows en lugar de _netrc
. Esta es una forma más segura de almacenar contraseñas.
.netrc
archivo cifrado . No tendrá que ingresar esas credenciales ni una sola vez durante la sesión.
Esto permitirá que Git se autentique en HTTPS usando .netrc
:
_netrc
y ubicado en c:\Users\<username>
.HOME=%USERPROFILE%
(establecer variables de entorno de todo el sistema utilizando la opción Sistema en el panel de control. Dependiendo de la versión de Windows, es posible que deba seleccionar "Opciones avanzadas")._netrc
archivo no puede contener espacios (citar la contraseña no funcionará).Estoy publicando una forma de usar _netrc
para descargar materiales del sitio www.course.com.
Si alguien va a usar el coursera-dl para descargar los materiales de clase abierta en www.coursera.com, y en el sistema operativo Windows alguien quiere usar un archivo como ".netrc" que está en el sistema operativo Unix para agregar el opción en -n
lugar de -U <username> -P <password>
por conveniencia. Él / ella puede hacerlo así:
Verifique la ruta de inicio en el sistema operativo Windows: setx HOME %USERPROFILE%
(consulte la respuesta de VonC ). Guardará la HOME
variable de entorno como C:\Users\"username"
.
Localice en el directorio C:\Users\"username"
y cree un nombre de archivo _netrc
. NOTA: NO hay ningún sufijo.
el contenido es como:machine coursera-dl login <user> password <pass>
Use un comando como coursera-dl -n --path PATH <course name>
para descargar los materiales de la clase. Más detalles sobre las opciones de coursera-dl para esta página .
HOME
variable de entorno es importante porque no está definida por defecto en Windows. Puede configurar esa variable en el directorio que desee (no tiene que serloC:\users\mylogin
): por ejemplo, en el trabajo, lo configuro en mi disco remoto privado asociado con mi cuenta de Windows, lo que me permite cambiar de escritorio sin tener que perder mi.ssh
o_netrc
configuración.