2011-05-17 18 views

Respuesta

179

actualización April 2013, git 1.8.3:

Ahora puede utilizar un .netrc cifrado (con GPG).
En Windows: %HOME%/_netrc (_, no '.')

Un new read-only credential helper (en contrib/) para interactuar con los archivos .netrc/.authinfo se ha añadido.

Ese guión le permitiría a uso de archivos cifrados Netrc GPG-, evitando el problema de tener sus credenciales almacenadas en un archivo de texto plano.

Los archivos con la extensión .gpg serán descifrados por GPG antes del análisis.
Múltiples argumentos -f están bien. Se procesan en orden y la primera entrada coincidente encontrada se devuelve mediante el protocolo de credencial auxiliar.

Cuando se da ninguna opción -f, .authinfo.gpg, .netrc.gpg, .authinfo y .netrc archivos en el directorio de inicio se utilizan en este orden.

Para activar esta ayuda de credenciales:

git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2' 

(. Tenga en cuenta que Git antepondrá "git-credential-" al nombre del ayudante y buscarlo en el camino)

# 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 "Is there a way to skip password typing when using https:// github"


actualización a finales de 2012, con versión git 1.7.9+: This answer de Mark Longair Detalles del credential cache mechanism que le permite no guardar la contraseña en texto plano, como se muestra a continuación.


(Respuesta original)

Debe definir:

  • variable de entorno %HOME%
  • poner un archivo _netrc en %HOME%

Si está utilizando Windows 7

ejecutar el tipo cmd esto:

setx HOME %USERPROFILE% 

y el% HOME% se establece en 'C:\Users\"username"'

luego ir a ella y hacer un archivo llamado '_netrc'

Nota: para Windows, necesita un archivo '_netrc', no un '.netrc'.

Su contenido es bastante estándar (Sustituir el con sus valores):

machine <hostname1> 
login <login1> 
password <password1> 
machine <hostname2> 
login <login2> 
password <password2> 

Luke menciones en los comentarios:

Con la última versión de msysgit en Windows 7, I no necesitó configurar la variable de entorno HOME. El archivo _netrc solo hizo el truco.

Esto es precisamente lo que he mencionado en "Trying to “install” github, .ssh dir not there ":
git-cmd.bat incluido en msysgit no establecer la variable de entorno HOME%%:

@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 sho wn en this example (busque 'netrc' en la página):. También se usa con el protocolo http aquí: "_netrc/.netrc alternative to cURL".


Una trampa común con con el apoyo netrc en Windows es que git pasará por alto usarlo si una URL https origen especifica un nombre de usuario.

Por ejemplo, si el archivo de .git/config 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 este quitar su nombre de usuario, así:

 
[remote "origin"] 
    fetch = +refs/heads/*:refs/remotes/origin/* 
    url = https://code.google.com/p/my-project/ 
+0

bien, va a darle una oportunidad Gracias –

+0

@Bernd:...! El' La variable de entorno HOME' es importante, porque no está definida por defecto en Windows. Puede establecer esa variable en el directorio que desee (no tiene que ser 'C: \ users \ mylogin'): por ejemplo, en trabajo, lo configuré en mi disco remoto privado asociado con mi cuenta de Windows, lo que me permite cambiar de escritorio sin tener que perder mi configuración '.ssh' o' _netrc'. – VonC

+0

@Bernd: compruebe también si su repositorio de Git está en una Servidor LAN o WAN (internet). Puede necesitar definir un 'http.proxy' en las variables de su entorno o, por el contrario, agregar su servidor a una variante' no_proxy' ble, para evitar intentar acceder a un servidor LAN a través de WAN. – VonC

34

También puede instalar Git Credential Manager for Windows para guardar contraseñas de Git en el administrador de credenciales de Windows en lugar de netrc. Esta es una forma más segura para almacenar la contraseña

+8

Gran respuesta, esta es la única respuesta que he encontrado que me permite mantener la simplicidad de nombre de usuario/contraseña (de forma segura) sin tener que lidiar con toda esa basura de SSH. –

+0

@KirkWoll vea la respuesta de mi actualización anterior: ahora puede almacenar sus credenciales en un archivo '.netrc' encriptado. No tendrá que ingresar esas credenciales ni siquiera una vez durante la sesión. – VonC

7

Esto le permitirá autenticar git en https utilizando .netrc

  • El archivo debe ser nombrado _netrc y ubicado en c:\Users\<username>
  • Usted tendrá que establecer una variable de entorno llamado HOME=%USERPROFILE% (Configure las variables de entorno de todo el sistema usando la opción Sistema en el panel de control. Dependiendo de la versión de Windows, puede necesitar seleccionar "Opciones avanzadas")
  • La contraseña almacenada en el archivo _netrc no puede contener espacios (quo r la contraseña no funcionará)
+0

La mejor y más simple solución. Funcionó como un encanto con Android Studio, Source Tree y la línea de comandos de Git. Tuve que usar esto cuando Google recomendaba la opción de credencial de Cloud SDK. La opción de asistencia falló y tuve que generar credenciales manualmente y utilizarla con el archivo de red. En mi caso, no requirí la opción 2 y 3. – Hari

1

Publica una manera _netrc usar para descargar materiales del sitio www.course.com.I'd espero alguna ayuda para usted.

Si alguien va a utilizar el coursera-dl para descargar los materiales de clase abierta en www.coursera.com. y en sistemas operativos Windows alguien quiere usar un archivo como ".netrc", que se encuentran en perfectas sistema operativo Unix para agregar la opción -n en lugar de -U -P para convenience.He puede hacer así:

  1. compruebe la ruta principal en el sistema operativo Windows: setx HOME %USERPROFILE% (refer: VonC 's answer). Guardará HOME como C:\Users\"username".

  2. localizar en el directorio C:\Users\"username" y crear un nombre de archivo _netrc. NOTA: NO hay ningún sufijo. el contenido es como: machine coursera-dl login <user> password <pass>

  3. comando use como coursera-dl -n --path PATH <course name> para descargar los materiales de clase. más detalles de las opciones de coursera-dl para this page.

Cuestiones relacionadas