linux - remove - Git pide nombre de usuario cada vez que empujo
git tag commits (15)
Autenticación permanente con repositorios Git.
Ejecute el siguiente comando para habilitar el almacenamiento en caché de credenciales:
$ git config credential.helper store
$ git push https://github.com/repo.git
Username for ''https://github.com'': <USERNAME>
Password for ''https://[email protected]'': <PASSWORD>
El uso también debe especificar caducidad de almacenamiento en caché
git config --global credential.helper "cache --timeout 7200"
Después de habilitar el almacenamiento en caché de credenciales, se almacenará en caché durante 7200 segundos (2 horas) .
Leer credenciales docs.
$ git help credentials
Cada vez que trato de ingresar en mi repositorio, solicita tanto un username & password
.
No tengo ningún problema en volver a ingresar mi contraseña cada vez, pero el problema está en ingresar un nombre de usuario. Yo uso https
para clonar mi repositorio.
Entonces, ¿cómo puedo configurar git para que no solicite un username
de username
en cada git push
?
Soy nuevo en Linux, pero IIRC en windows git push
solo pide una contraseña.
$ git config credential.helper store
$ git push / push https://github.com/xxx.git
Luego ingrese su nombre de usuario y contraseña.
- Hecho
Además de la respuesta del usuario 701648, puede almacenar sus credenciales en su carpeta de inicio (global para todos los proyectos), en lugar de la carpeta del proyecto con el siguiente comando
$ git config --global credential.helper store
$ git push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
Agregue nuevas claves SSH como se describe en este artículo en GitHub .
Si Git aún le pide su nombre de usuario y contraseña, intente cambiar https://github.com/
a [email protected]:
en la URL remota:
git config --global --edit
Asegúrese de que está utilizando SSH en lugar de http. Marque this respuesta SO.
Cambiando los trabajos de repo clonado:
git remote set-url origin [email protected]:gitusername/projectname.git
Usar las credenciales almacenadas en caché funciona, y establecer el período de tiempo de espera hace que las cosas sean menos molestas. Si usa el asistente de credenciales de Windows, ese debería ser el método más sencillo (especialmente si se bloquea SSH).
Cuando solo git pull , git pull origin xxx , git pregunta por nombre de usuario y contraseña.
git config credential.helper store
funciona.
La forma más fácil que encontré fue con este comando:
$ git config remote.origin.url
https://github.com/dir/repo.git
$ git config remote.origin.url "[email protected]:dir/repo.git"
Esto funciona sitio por sitio y modifica su configuración global de git.
Para ver los cambios, usa:
git config --global credential.https://github.com.username <your_username>
La forma más sencilla es crear un archivo ~/.netrc
con los siguientes contenidos:
machine github.com
login YOUR_GITHUB_USERNAME
password YOUR_GITHUB_PASSWORD
(como se muestra aquí: https://gist.github.com/ahoward/2885020 )
Incluso puede cerrar los permisos de este archivo para que nadie pueda leer su contraseña escribiendo:
chmod 600 ~/.netrc
Para evitar ingresar un nombre de usuario, pero aún así se le solicita que ingrese una contraseña, simplemente puede clonar su repositorio incluyendo el nombre de usuario:
git clone [email protected]/my_repo.git
Puede configurar su nombre de usuario para todos los repositorios en un sitio determinado poniendo algo como lo siguiente en su archivo de configuración de Git. Querrá cambiar " https://example.com " y "me" a la URL real y su nombre de usuario real.
[credential "https://example.com"]
username = me
(Esto es directamente de "credenciales de ayuda git")
Puede lograr esto en el archivo .git/config
de su repositorio local. Este archivo contiene una sección llamada ''remoto'' con una entrada llamada ''url''. La entrada ''url'' debe contener el enlace https del repositorio del que está hablando.
Cuando prefieres el host ''url'' con tu nombre de usuario, git
ya no debe pedir tu nombre de usuario. Aquí hay un ejemplo:
url = https://[email protected]
Si está utilizando https en lugar de ssh, puede editar "url" en .git/config
como lo indica el usuario 701648, pero si lo desea, también puede agregar la contraseña:
url = https://username:[email protected]
Si usa la versión SSH , no tendrá ningún problema con las contraseñas. Solo una vez que genere la clave SSH , para informarle a git, que esta PC funcionará con esta cuenta de Github y nunca más volverá a preguntarme sobre ningún acceso (para esta PC).
Editar (por @dk14 como lo sugieren los moderadores y los comentarios)
ADVERTENCIA: si usa credential.helper store
de la respuesta, su contraseña se almacenará completamente sin cifrar ("tal como está") en ~/.git-credentials
. Consulte la sección de comentarios a continuación o las respuestas de la sección "Vinculados", especialmente si su empleador no tiene tolerancia para los problemas de seguridad.
Justificación: el enfoque descrito en la respuesta podría introducir una vulnerabilidad importante, especialmente para las empresas que operan con datos financieros privados. Combinado con problemas de seguridad menores (a menudo presentes en tal) o ingeniería social mínima, permite secuestrar la mayoría de las credenciales en la red del proyecto ya que la ubicación de la contraseña "desnuda" se conoce de antemano. Esto posiblemente incluye credenciales que dan acceso parcial al entorno de producción, por lo tanto, elevan de facto los derechos de acceso del atacante [interno] y permiten ocultar la identidad del pirata informático hasta cierto punto.
Como nota al margen (para extender esta advertencia con el ejemplo), varios proyectos de grandes empresas parecen tener este problema a pesar de proporcionar entornos virtuales seguros para los empleados ... Básicamente, mi petición para deshacerse de la autenticación https
fue rechazada por este motivo, pero en En ese momento, no pensé que se pudiera inyectar un exploit (como cat ~/git.credentials | curl ...
) a los scripts de bash / build auxiliares alojados en Git para distribuirlos entre los usuarios, tal vez incluso de forma anónima (como algunos se sincronizan automáticamente). Para ser justos, este truco generalmente no daría (al menos) directamente acceso a los sistemas críticos. Excepto si Git-credentials === corporate-email-credentials
.
Edición # 2 (por @ dk14):
Aunque se acepta, no responde a la pregunta del OP real sobre la omisión de un nombre de usuario solamente (no una contraseña). Para los lectores con ese problema exacto, la answer @ grawity podría ser útil.
Respuesta original (por @Alexander Zhu):
Puedes almacenar tus credenciales usando el siguiente comando
$ git config credential.helper store
$ git push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
También te sugiero que leas
$ git help credentials