Quiero usar un push and pull automáticamente en GitExtension , sin ingresar mi usuario y contraseña en un aviso, siempre.
Entonces, ¿cómo puedo guardar mis credenciales en git?
git
credentials
git-config
Edson Cezar
fuente
fuente
Respuestas:
correr
entonces
proporcione un nombre de usuario y contraseña y esos detalles se recordarán más tarde. Las credenciales se almacenan en un archivo en el disco, con los permisos de disco de "solo lectura / escritura por el usuario" pero aún en texto sin formato.
Si quieres cambiar la contraseña más tarde
Fallará, porque la contraseña es incorrecta, git elimina el usuario ofensivo + contraseña del
~/.git-credentials
archivo, por lo que ahora vuelva a ejecutarpara proporcionar una nueva contraseña para que funcione como antes.
fuente
Puede usar el
git config
para habilitar el almacenamiento de credenciales en git.Cuando ejecute este comando, la primera vez que extraiga o presione desde el repositorio remoto, se le preguntará sobre el nombre de usuario y la contraseña.
Posteriormente, para las comunicaciones consiguientes con el repositorio remoto, no tiene que proporcionar el nombre de usuario y la contraseña.
El formato de almacenamiento es un
.git-credentials
archivo, almacenado en texto sin formato.Además, puede usar otros ayudantes para
git config credential.helper
, a saber, memoria caché:que toma una opción
timeout parameter
, determinando por cuánto tiempo las credenciales se guardarán en la memoria Con el ayudante, las credenciales nunca tocarán el disco y se borrarán después del tiempo de espera especificado. Eldefault
valor es900 seconds (15 minutes).
ADVERTENCIA : Si usa este método, las contraseñas de su cuenta git se guardarán en
plaintext
formato, en elglobal .gitconfig file
, por ejemplo, en Linux será/home/[username]/.gitconfig
Si esto no es deseable para usted, use un
ssh key
para sus cuentas en su lugar.fuente
git config credential.helper cache
las contraseñas no se pueden guardar en un archivo, sólo se almacena en la memoria. Ver: git-scm.com/docs/git-credential-cacheMétodo recomendado y seguro: SSH
Crea una clave ssh Github. Vaya a github.com -> Configuración -> claves SSH y GPG -> Nueva clave SSH. Ahora guarde su clave privada en su computadora.
Luego, si la clave privada se guarda como id_rsa en el directorio ~ / .ssh / , la agregamos para la autenticación como tal:
Un método más seguro: almacenamiento en caché
Podemos usar git-credential-store para almacenar en caché nuestro nombre de usuario y contraseña por un período de tiempo. Simplemente ingrese lo siguiente en su CLI (terminal o símbolo del sistema):
También puede establecer el período de tiempo de espera (en segundos) como tal:
Un método aún menos seguro
Git-credential-store también se puede usar, pero guarda las contraseñas en un archivo de texto plano en su disco como tal:
Respuesta desactualizada: rápida e insegura
Este es un método inseguro para almacenar su contraseña en texto sin formato. Si alguien obtiene el control de su computadora, su contraseña se verá expuesta.
Puede configurar su nombre de usuario y contraseña de esta manera:
fuente
Active el asistente de credenciales para que Git guarde su contraseña en la memoria durante algún tiempo:
En Terminal, ingrese lo siguiente:
De forma predeterminada, Git almacenará en caché su contraseña durante 15 minutos.
Para cambiar el tiempo de espera predeterminado de la caché de contraseña, ingrese lo siguiente:
De la Ayuda de GitHub
fuente
cache
parte constore
. Por lo tanto, el comando completo será:git config --global credential.helper store
. Tenga en cuenta que esto almacenará su contraseña en un archivo de texto abierto (sin cifrado, por así decirlo).--timeout
parámetro?Puede editar el
~/.gitconfig
archivo para almacenar sus credencialesQue ya debería tener
Debe agregar al final de este archivo.
La razón por la que recomiendo esta opción es porque es global y si en algún momento necesita eliminar la opción, sabe a dónde ir y cambiarla.
SÓLO USE ESTA OPCIÓN EN SU COMPUTADORA PERSONAL.
Entonces cuando tiras | clon | ingrese su contraseña de git, en general, la contraseña se guardará
~/.git-credentials
en el formatoDONDE DOMINIO.XXX PODRÍA ESTAR GITHUB.COM | BITBUCKET.ORG | OTRO
Ver documentos
Reinicia tu terminal.
fuente
Simplemente ponga sus credenciales en la URL de esta manera:
Puede almacenarlo así:
... ejemplo para usarlo :
Ahora eso es para enumerar los alias de url:
git remote -v
... y que el comando para eliminar uno de ellos:
git remote rm myrepo
fuente
[email protected]:Username/myRepo.git
https
, nossh
, por lo que una solución como esta puede ser útil allí. Tenga en cuenta también que puede usar un token oauth, que es marginalmente más seguro que su contraseña de GitHub.Para la configuración global, abra el terminal (desde cualquier lugar) ejecute lo siguiente:
Por eso, cualquier repositorio de git local que tenga en su máquina usará esa información.
Puede configurar individualmente para cada repositorio haciendo:
ejecuta lo siguiente:
Afecta solo a esa carpeta (porque su configuración es local).
fuente
--local
etiqueta pero nuevamente no pasa nadaPuede usar git-credential-store para almacenar sus contraseñas sin cifrar en el disco, protegidas solo por los permisos del sistema de archivos.
Ejemplo
Puede verificar las credenciales almacenadas en el archivo
~/.git-credentials
Para obtener más información, visite git-credential-store - Ayudante para almacenar credenciales en el disco
fuente
Estará más seguro si usa la autenticación SSH que la autenticación de nombre de usuario / contraseña.
Si está utilizando una Mac, la autenticación de cliente SSH está integrada en el llavero de MacOS. Una vez que haya creado una clave SSH, escriba en su terminal:
Esto agregará la clave privada SSH al llavero MacOS. El cliente git usará ssh cuando se conecte al servidor remoto. Mientras haya registrado su clave pública ssh con el servidor, estará bien.
fuente
SSH
. Al usar la autenticación HTTP, alguien que robe las credenciales solo tendrá acceso a ellasGitHub/GitLab
. También los tokens están diseñados para tener una vida limitada.Después de revisar docenas de publicaciones SO, blogs, etc., probé todos los métodos, y esto es lo que se me ocurrió. Cubre TODO.
La hoja de referencia de credenciales y paquetes privados de Vanilla DevOps Git
Estas son todas las formas y herramientas mediante las cuales puede autenticar de forma segura git para clonar un repositorio sin una solicitud de contraseña interactiva .
La bala de plata
¿Quieres Just Works ™? Esta es la bala mágica de plata.
Obtenga su token de acceso (consulte la sección en la hoja de referencia si necesita las instrucciones de Github o Gitea para eso) y configúrelo en una variable de entorno (tanto para el desarrollo local como para la implementación):
Para Github, copie y ejecute estas líneas textualmente :
Enhorabuena, ahora cualquier repositorio git de clonación de herramientas automatizadas no se verá obstaculizado por una solicitud de contraseña, ya sea usando https o cualquier estilo de ssh url.
¿No estás usando Github?
Para otras plataformas (Gitea, Github, Bitbucket), simplemente cambie la URL. No cambie los nombres de usuario (aunque sean arbitrarios, son necesarios para distintas entradas de configuración).
Compatibilidad
Esto funciona localmente en MacOS, Linux, Windows (en Bash), Docker, CircleCI, Heroku, Akkeris, etc.
Más información
Vea la sección ".gitconfig en lugar de" de la hoja de trucos.
Seguridad
Vea la sección "Seguridad" de la hoja de trucos.
fuente
git config --global credential."https://somegithost.com".username MyUserName
, que está en tu hoja de trucos, pero no en ningún otro lugar en este hilo de respuestas. Esa solución en particular no responde la pregunta del OP, pero sí la mía, ¡así que gracias!En ese caso, necesita el asistente de credenciales git para decirle a git que recuerde su contraseña y nombre de usuario de GitHub mediante la siguiente línea de comando:
y si está utilizando repositorio utilizando la clave SSH, entonces necesita la clave SSH para autenticarse.
fuente
Ninguna de las respuestas anteriores funcionó para mí. Seguía recibiendo lo siguiente cada vez que quería
fetch
opull
:Enter passphrase for key '/Users/myusername/.ssh/id_rsa':
Para Mac
Pude evitar que pidiera mi frase de contraseña:
vi ~/.ssh/config
UseKeychain yes
:wq!
Para ventanas
Pude hacer que funcionara usando la información en este stackexchange: https://unix.stackexchange.com/a/12201/348665
fuente
Además de editar el
~/.gitconfig
archivo, eso puede hacer si pregunta:o
Nota para usar siempre comillas simples :
o
Su nombre de usuario y contraseña pueden usar algunos caracteres que romperían su contraseña si usa comillas dobles.
--local
o--global
significa que los parámetros de configuración se guardan para el proyecto o para el usuario del sistema operativo.fuente
Solo usa
y haga el git pull , pedirá nombre de usuario y contraseña, a partir de ahora no proporcionará ningún mensaje de nombre de usuario y contraseña, almacenará los detalles
fuente
Almacene el nombre de usuario y la contraseña en .git-credentials
.git-credentials
es donde se almacena su nombre de usuario y contraseña (token de acceso) cuando ejecutagit config --global credential.helper store
, que es lo que sugieren otras respuestas, y luego escriba su nombre de usuario y contraseña o token de acceso:Entonces, para guardar el nombre de usuario y la contraseña (token de acceso):
Esto es muy útil para el robot github, por ejemplo, para resolver las compilaciones automatizadas en cadena en el mismo repositorio de docker al tener reglas para diferentes ramas y luego activarlo presionando en
post_push
hooker en el centro de docker.Un ejemplo de esto se puede ver aquí en stackoverflow.
fuente
Una forma rápida de almacenar en caché las credenciales de git:
agradable y seguro
el tiempo de espera es en segundos.
fuente
Después de leer el hilo completo y experimentar con la mayoría de las respuestas a esta pregunta, finalmente encontré el procedimiento que me funciona. Quiero compartirlo en caso de que alguien tenga que lidiar con un caso de uso complejo, pero todavía no quiero pasar por el hilo completo y las páginas de manual de gitcredentials , gitcredentials-store, etc., como lo hice yo.
Encuentre a continuación el procedimiento que le sugiero SI (como yo) tiene que lidiar con varios repositorios de varios proveedores (GitLab, GitHub, Bitbucket, etc.) utilizando varias combinaciones diferentes de nombre de usuario / contraseña. Si, en cambio, solo tiene una única cuenta con la que trabajar, es mejor que emplee las soluciones
git config --global credential.helper store
ogit config --global user.name "your username"
etc. que se han explicado muy bien en las respuestas anteriores.Mi solución:
> git config --global --unset credentials.helper
> cd /path/to/my/repo
> git config --unset credential.helper
> git config credential.helper 'store --file ~/.git_repo_credentials'
Nota : este comando crea un nuevo archivo llamado ".git_repo_credentials" en su directorio de inicio, en el que Git almacena sus credenciales. Si no especifica un nombre de archivo, Git usa los ".git_credentials" predeterminados. En este caso, simplemente emitirá el siguiente comando:
> git config credential.helper store
git config credential.*.username my_user_name
Nota : usar "*" generalmente está bien si sus repositorios son del mismo proveedor (por ejemplo, GitLab). Si, en cambio, sus repositorios están alojados por diferentes proveedores, sugiero configurar explícitamente el enlace al proveedor para cada repositorio, como en el siguiente ejemplo (para GitLab):
git config credential.https://gitlab.com.username my_user_name
En este punto, si emite un comando que requiere sus credenciales (por ejemplo
git pull
), se le pedirá la contraseña correspondiente a "my_user_name". Esto solo se requiere una vez porque git almacena las credenciales en ".git_repo_credentials" y usa automáticamente los mismos datos en accesos posteriores.fuente
Del comentario de rifrol, en Linux Ubuntu, de esta respuesta , así es como en Ubuntu:
Algunas otras distribuciones proporcionan el binario para que no tenga que construirlo.
En OS X, por lo general viene "integrado" con un módulo predeterminado de "osxkeychain" para que pueda obtenerlo de forma gratuita.
fuente
Consulte la documentación oficial de git:
https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage
fuente