Solución:
¿Es posible utilizar un
.netrc
archivo en Windows?
Si, debes:
- definir variable de entorno
%HOME%
(pre-Git 2.0, ya no es necesario con Git 2.0+) - Poner un
_netrc
presentar en%HOME%
Si está utilizando Windows 7/10, en un CMD
sesión, escriba:
setx HOME %USERPROFILE%
y el %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
‘ expediente, no a ‘.netrc
‘ expediente.
Su contenido es bastante estándar (Reemplace el <examples>
con tus valores):
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>
Luke menciona en los comentarios:
Usando la última versión de msysgit en Windows 7, no necesité configurar el
HOME
Variable ambiental. los_netrc
archivo solo hizo el truco.
De hecho, esto es lo que mencioné en “Intentando”install
“Github, .ssh
dir no está “:
git-cmd.bat
incluido en msysgit establece el %HOME%
Variable ambiental:
@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 usa con el protocolo HTTP aquí: “_netrc
/.netrc
alternativa a cURL
“.
Una trampa común con con netrc
El soporte en Windows es que git evitará su uso si una URL https de origen especifica un nombre de usuario.
Por ejemplo, si tu .git/config
el archivo contiene:
[remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = https://[email protected]/p/my-project/
Git no resolverá sus credenciales a través de _netrc
, para solucionar esto, elimine su nombre de usuario, así:
[remote "origin"] 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 cuales además Te permite no guarde su contraseña en texto plano como se muestra a continuación.
Con Git 1.8.3 (abril de 2013):
Ahora puede utilizar un .netrc cifrado (con gpg
).
En Windows: %HOME%/_netrc
(_
, no ‘.
‘)
A nuevo asistente de credenciales de solo lectura (en
contrib/
) para interactuar con el.netrc/.authinfo
Se han agregado archivos.
Ese guión te permitiría utilizar archivos netrc cifrados con gpg, evitando el problema de tener sus credenciales almacenadas en un archivo de texto sin formato.
Archivos con
.gpg
GPG descifrará la extensión antes de analizarla.
Múltiple-f
los argumentos están bien. Se procesan en orden y la primera entrada coincidente encontrada se devuelve a través del protocolo de ayuda de credenciales.Cuando no
-f
se da la opción,.authinfo.gpg
,.netrc.gpg
,.authinfo
, y.netrc
Los archivos de su directorio personal 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 búsquelo 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 forma de omitir la escritura de contraseñas al usar https:// github
“
Con Git 2.18+ (junio de 2018), ahora puede personalizar el programa GPG utilizado para descifrar el cifrado .netrc
expediente.
Ver commit 786ef50, commit f07eeed (12 de mayo de 2018) por Luis Marsano (“).
(Fusionada por Junio C Hamano – gitster
– en el compromiso 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 de otra manera, como ‘gpg2
‘
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.
Esto permitirá que Git se autentique en HTTPS usando .netrc
:
- El archivo debe llamarse
_netrc
y ubicado enc:Users<username>
. - Deberá establecer una variable de entorno llamada
HOME=%USERPROFILE%
(establezca las variables de entorno de todo el sistema mediante la opción Sistema en el panel de control. Dependiendo de la versión de Windows, es posible que deba seleccionar “Opciones avanzadas”). - La contraseña almacenada en el
_netrc
el archivo no puede contener espacios (citar la contraseña no funcionará).