Puede evitar la necesidad de escribir una frase de contraseña si ejecuta el agente ssh. La primera vez que realiza un git pull, lo hace de forma interactiva, y el agente ssh recordará su clave privada y puede ejecutar git pull sin que se le solicite.
Tim Finer
Respuestas:
162
Esto no es exactamente lo que solicitó, sino para http (s):
puede poner la contraseña en el archivo .netrc (_netrc en windows). Desde allí sería recogido automáticamente. Iría a su carpeta de inicio con 600 permisos.
también podría clonar el repositorio, https://user:pass@domain/repopero eso no es realmente recomendable, ya que mostraría su usuario / pase en muchos lugares ...
Una nueva opción es utilizar el asistente de credenciales . Tenga en cuenta que las credenciales se almacenarían en texto sin cifrar en su configuración local utilizando el asistente de credenciales estándar. credential-helper con wincred también se puede usar en windows.
Ejemplos de uso para credencial auxiliar
git config credential.helper store - almacena las credenciales indefinidamente.
git config credential.helper 'cache --timeout=3600'- almacena por 60 minutos
Para el acceso basado en ssh, usaría el agente ssh que proporcionará la clave ssh cuando sea necesario. Esto requeriría generar claves en su computadora, almacenar la clave pública en el servidor remoto y agregar la clave privada al almacén de claves correspondiente.
¿Puedes dar más detalles sobre la parte SSH? Estoy configurando una instancia EC2, y me gustaría que se extraiga sin solicitar mi contraseña y la escala automática de AWS. Este esquema público / privado parece una buena solución.
Terminé usando el mecanismo de implementación de claves, que parece ser una buena solución. ¡Gracias!
Pedro Dusso
129
Encontré una forma de proporcionar credenciales para una conexión https en la línea de comando. Solo necesita especificar la URL completa para git pull e incluir las credenciales allí:
No necesita clonar el repositorio con las credenciales antes, esto significa que sus credenciales no terminan en .git/config. (Pero asegúrese de que su shell no lo traicione y almacene la línea de comando en un archivo de historial).
no se requiere contraseña, y esto no es seguro para escribir la contraseña de esta manera
meteorito
¿No es esta una de las cosas que enumeré en la respuesta aceptada, ya en 2012?
eis
8
@eis: No exactamente. El punto es que no necesita clonar el repositorio con la URL que incluye las credenciales, pero aún puede extraer de la URL con credenciales. El efecto es que las credenciales no terminan en el archivo .git / config.
holgero
55
Si omite la :passwordparte, se le pedirá la contraseña después de presionar enter. De esa manera, su contraseña no se guardará en el historial de bash.
No responde la pregunta directamente, pero encontré esta pregunta al buscar una forma de, básicamente, no volver a ingresar la contraseña cada vez que accedo a un servidor remoto .
Bueno, le gitpermite almacenar en caché sus credenciales durante un tiempo finito. Es personalizable git configy esta página lo explica muy bien:
Ajuste el " store" backend de muestra del asistente de credenciales para respetar las ubicaciones del archivo de configuración XDG cuando se especifique.
El documento ahora dice:
Si no se especifica:
se buscarán credenciales desde ~/.git-credentialsy $XDG_CONFIG_HOME/git/credentials, y
las credenciales se escribirán ~/.git-credentialssi existe o $XDG_CONFIG_HOME/git/credentialssi existe y la primera no.
Debajo de cmd funcionará si no tenemos una contraseña @:
git pull https://username:pass@[email protected]/my/repository
si tiene una contraseña @, reemplácela por% 40 como se muestra a continuación:
git pull https://username:pass%[email protected]/my/repository
Respuestas:
Esto no es exactamente lo que solicitó, sino para http (s):
https://user:pass@domain/repo
pero eso no es realmente recomendable, ya que mostraría su usuario / pase en muchos lugares ...Ejemplos de uso para credencial auxiliar
git config credential.helper store
- almacena las credenciales indefinidamente.git config credential.helper 'cache --timeout=3600'
- almacena por 60 minutosPara el acceso basado en ssh, usaría el agente ssh que proporcionará la clave ssh cuando sea necesario. Esto requeriría generar claves en su computadora, almacenar la clave pública en el servidor remoto y agregar la clave privada al almacén de claves correspondiente.
fuente
Encontré una forma de proporcionar credenciales para una conexión https en la línea de comando. Solo necesita especificar la URL completa para git pull e incluir las credenciales allí:
No necesita clonar el repositorio con las credenciales antes, esto significa que sus credenciales no terminan en
.git/config
. (Pero asegúrese de que su shell no lo traicione y almacene la línea de comando en un archivo de historial).fuente
:password
parte, se le pedirá la contraseña después de presionar enter. De esa manera, su contraseña no se guardará en el historial de bash.No responde la pregunta directamente, pero encontré esta pregunta al buscar una forma de, básicamente, no volver a ingresar la contraseña cada vez que accedo a un servidor remoto .
Bueno, le
git
permite almacenar en caché sus credenciales durante un tiempo finito. Es personalizablegit config
y esta página lo explica muy bien:https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux
En una terminal, ejecute:
Para personalizar el tiempo de espera de caché, puede hacer lo siguiente:
Sus credenciales se almacenarán en la memoria durante el tiempo solicitado.
fuente
Tenga en cuenta que la forma en que el asistente de credenciales git "almacena" almacenará las contraseñas no cifradas cambia con Git 2.5+ (Q2 2014).
Ver commit 17c7f4d por Junio C Hamano (
gitster
)El documento ahora dice:
fuente
Debajo de cmd funcionará si no tenemos una contraseña @:
git pull https://username:pass@[email protected]/my/repository
si tiene una contraseña @, reemplácela por% 40 como se muestra a continuación:git pull https://username:pass%[email protected]/my/repository
fuente