password - git me pide usuario y contraseña
¿Cómo guardar el nombre de usuario y la contraseña en GIT? (16)
Almacene el nombre de usuario y la contraseña en .git-credentials
.git-credentials
es donde se almacenan su nombre de usuario y contraseña cuando ejecuta
git config --global credential.helper store
, que es lo que sugieren otras respuestas, y luego ingrese su nombre de usuario y contraseña:
https://${username}:${password_or_access_token}@github.com
Entonces, para guardar el nombre de usuario y la contraseña:
git config —-global credential.helper store echo “https://${username}:${password_or_access_token}@github.com“ > ~/.git-credentials
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 docker hub.
Un ejemplo de esto se puede ver aquí en stackoverflow.
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 ?
Active el asistente de credenciales para que Git guarde su contraseña en la memoria durante algún tiempo:
En Terminal, ingrese lo siguiente:
# Set the cache to timeout after 1 hour (setting is in seconds)
git config --global credential.helper ''cache --timeout=3600''
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:
git config --global user.name "your username"
git config --global user.password "your password"
De la Ayuda de GitHub
Además de editar el archivo
~/.gitconfig
, eso puede hacer si pregunta:
git config --local user.name ''your username''
git config --local user.password ''your password''
o
git config --global user.name ''your username''
git config --global user.password ''your password''
Nota para usar siempre comillas simples :
MY_GIT_TOKEN=xxxxxxxxxxxxxxxx
o
git config --global url."https://api:[email protected]/".insteadOf "https://github.com/"
git config --global url."https://ssh:[email protected]/".insteadOf "ssh://[email protected]/"
git config --global url."https://git:[email protected]/".insteadOf "[email protected]:"
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
--local
--global
.
Del comentario de rifrol, en Linux Ubuntu, de esta answer :
sudo apt-get install libsecret-1-0 libsecret-1-dev cd /usr/share/doc/git/contrib/credential/libsecret sudo make git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
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.
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 .
-
SSH Public Keys
- SSH_ASKPASS
-
Tokens de acceso a la API
- GIT_ASKPASS
- .gitconfig en su lugar
- .gitconfig [credencial]
- .git-credentials
- .netrc
-
Paquetes privados (gratis)
- nodo / npm package.json
- python / pip / eggs require.txt
- gemas de rubí Gemfile
- golang go.mod
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):
git config --local --edit
Para Github, copie y ejecute estas líneas textualmente :
git config --global --edit
Enhorabuena, ahora los repositorios git de clonación de herramientas automatizadas no se verán obstaculizados por una solicitud de contraseña, ya sea usando https o cualquier estilo de url ssh.
¿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.
En ese caso, necesita la ayuda de credenciales de git para decirle a git que recuerde su contraseña y nombre de usuario de GitHub mediante la siguiente línea de comando:
git config --global credential.helper wincred
y si está utilizando repositorio utilizando la clave SSH, entonces necesita la clave SSH para autenticarse.
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:
git config user.name "your username"
git config user.password "your password"
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.
Ninguna de las respuestas anteriores funcionó para mí.
Seguía recibiendo lo siguiente cada vez que quería
fetch
o
pull
:
Enter passphrase for key ''/Users/myusername/.ssh/id_rsa'':
Para Mac
Pude evitar que pidiera mi frase de contraseña:
-
Abra la configuración ejecutando:
vi ~/.ssh/config
-
Se agregó lo siguiente:
UseKeychain yes
-
Guardado y salir: Presione
Esc
, luego ingrese
:wq!
Para ventanas
Pude hacer que funcionara utilizando la información en este stackexchange: https://unix.stackexchange.com/a/12201/348665
Para la configuración global, abra el terminal (desde cualquier lugar) ejecute lo siguiente:
ssh-add -K ~/.ssh/id_rsa
Por eso, cualquier repositorio de git local que tenga en su máquina usará esa información.
Puede configurar individualmente para cada repositorio haciendo:
- Abra la terminal en la carpeta del repositorio.
-
ejecutar siguiente:
git config --global user.name "your username" git config --global user.password "your password"
Afecta solo a esa carpeta (porque su configuración es local).
Puede configurar su nombre de usuario y contraseña de esta manera:
# Set git to use the credential memory cache
git config --global credential.helper cache
Puede editar el archivo
~/.gitconfig
para
almacenar
sus
credenciales
sudo nano ~/.gitconfig
Que ya debería tener
[user]
email = [email protected]
user = gitUSER
Debe agregar al final de este archivo.
[credential]
helper = store
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.
SOLO 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á en
~/.git-credentials
en el formato
https://GITUSER:[email protected]
DONDE DOMINIO.XXX PODRÍA ESTAR GITHUB.COM | BITBUCKET.ORG | OTRO
Ver Docs
Reinicia tu terminal.
Puede usar git-credential-store para almacenar sus contraseñas sin cifrar en el disco, protegidas solo por los permisos del sistema de archivos.
Ejemplo
$ git config credential.helper store
$ git push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
[several days later]
$ git push http://example.com/repo.git
[your credentials are used automatically]
Puede verificar las credenciales almacenadas en el archivo
~/.git-credentials
Para obtener más información, visite Docs
Puede usar la
git config
para habilitar el almacenamiento de credenciales en git.
git config --global credential.helper store
Al ejecutar este comando, la primera vez que extrae o empuja del repositorio remoto, se le preguntará sobre el nombre de usuario y la contraseña.
Luego, para las comunicaciones subsiguientes con el repositorio remoto, no tiene que proporcionar el nombre de usuario y la contraseña.
El formato de almacenamiento es un archivo
.git-credentials
, almacenado en texto sin formato.
Además, puede usar otros ayudantes para la
git config credential.helper
, es decir, la memoria caché:
git config credential.helper cache <timeout>
que toma un
timeout parameter
opcional, que determina durante cuánto tiempo se guardarán las credenciales en la memoria.
Usando el ayudante, las credenciales nunca tocarán el disco y se borrarán después del tiempo de espera especificado.
El valor
default
es
900 seconds (15 minutes).
ADVERTENCIA
: si utiliza este método, las contraseñas de su cuenta git se guardarán en formato de
plaintext
formato, en el
global .gitconfig file
, por ejemplo, en Linux será
/home/[username]/.gitconfig
Si esto no es deseable para usted, use una
ssh key
para sus cuentas.
Simplemente ponga sus credenciales en la URL de esta manera:
https://Username
:Password
@github.com/myRepoDir/myRepo.git
Puede almacenarlo así:
git remote add myrepo https://Userna...
... ejemplo para usarlo :
git push myrepo master
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
Solo usa
sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
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
correr
git config credential.helper store
entonces
git pull
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 legible / grabable por el usuario" pero aún en texto sin formato.
Si quieres cambiar la contraseña más tarde
git pull
Fallará, porque la contraseña es incorrecta, git luego elimina el usuario ofensivo + contraseña del archivo
~/.git-credentials
, por lo que ahora vuelva a ejecutar
git pull
para proporcionar una nueva contraseña para que funcione como antes.