Saltar al contenido

Git: cómo usar el archivo .netrc en Windows para guardar el usuario y la contraseña

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: aceptar gpg 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 en c: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á).
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *