Pregunta ¿Cómo me aseguro de que Git no me pida mi nombre de usuario y contraseña de GitHub?


Estoy trabajando con un repositorio en GitHub y cada vez que intento presionar algo, me pide mi nombre de usuario y contraseña de GitHub. No quiero que haga eso.

Probé las instrucciones en configurando su correo electrónico en Git, es decir, configurar las variables de Git github.user y github.token, pero eso no hizo ninguna diferencia.

No entiendo por qué está sucediendo esto.


158


origen


Necesitas guardar en caché la contraseña: help.github.com/articles/set-up-git#password-caching - Piotr Usewicz


Respuestas:


Necesita configurar un ssh-agent contra el cual solo necesita autenticarse una vez. Ver esta respuesta más de SO para un howto.


27



Pero esta solución es para frases de ssh-family. El problema es que git usa "git push" que no activa el ssh-agent, supongo. (Ya he hecho esto, entonces sé que no funciona). - picardo
@picardo: He hecho esto, y de hecho funciona. - Daenyth


Tuve un problema similar hoy: arruiné las cosas en mi copia de trabajo, así que decidí cambiar el nombre del directorio y volver a clonar mi proyecto desde github. Pero después de hacer eso, tuve que ingresar mi contraseña para hacer cualquier solicitud de extracción / inserción, en lugar de ingresar la frase de contraseña solo una vez como solía hacerlo.

¡Eso fue porque hoy utilicé el protocolo https para clonar el proyecto! Para verificar qué protocolo estás usando solo ejecuta

git config -l

y mira la línea que comienza con 'remote.origin.url'.

Para cambiar los protocolos:

git config remote.origin.url git@github.com:the_repository_username/your_project.git

the_repository_username y your_project debe reemplazarse con el nombre del repositorio apropiado y el propietario de ese repositorio. El nombre de usuario será tuyo si posees el repositorio, o el nombre de usuario del propietario del repositorio en caso contrario.


205



Funcionó para mí Una cosa es que la URL no contiene mi nombre de usuario, pero la dirección de repos como aparece en github: git@github.com:some-user/repo-name.git - B Seven
Nota: Google me trajo aquí. tuve el remote.origin.url configurar el método https y ni siquiera notó que había https vs ssh métodos. Esta URL me ayudó a ver lo obvio: help.github.com/articles/... - Chris K
¿Hay alguna forma de pasar la contraseña ingresando también? - zishe
Q para aquellos con conocimiento de git: Cualquier diferencia (o preferencia) entre git config remote.origin.url ... usado arriba, vs. git remote set-url origin ...? - Daryn
No pude entender cómo eliminar un origen erróneo como ese. La respuesta es: git remote rm origin - Vacilando


Si está utilizando HTTPS en lugar de SSH, puede seguir esto:

  1. Encuentre su URL remota (remote.origin.url) con

    git config -l
    

    gracias a Sergio Morstabilini

  2. Su URL remota será así: https: // {USERNAME} @ github.com / {USERNAME} / {REPONAME} .git

  3. Ejecute este comando:

    git config remote.origin.url https://{USERNAME}:{PASSWORD}@github.com/{USERNAME}/{REPONAME}.git
    

28



mi nombre de usuario contiene @no funcionó para mí - coding_idiot
¡Pero si no lo hace (no necesita usar su correo electrónico) funciona perfectamente! Gracias. - Killah
Si su nombre de usuario incluye un @, necesita codificarlo por URL. meyerweb.com/eric/tools/dencoder - Tim Bodeit
Debería omitir su contraseña por razones de seguridad. - zygimantus
cuidado, la contraseña se guardará en texto plano dentro de .git/config ¡archivo! - Amro


Prefiero usar HTTPS, me resulta más fácil y más seguro que configurar las claves ssh.

Usando HTTPS, puedes evitar que git pregunte a tu nombre de usuario por los controles remotos github con lo siguiente:

git config --global url."https://yourusername@github.com".insteadOf "https://github.com"

Y al menos puede reducir la frecuencia con la que git solicita su contraseña:

git config --global credential.helper 'cache --timeout=28800'

Donde 28800 son 8 horas. Utilizo esta configuración para ingresar mi contraseña solo una vez, cuando comienzo mi jornada laboral.

Después de eso, tendrá estas entradas dentro de su ~/.gitconfig

[url "https://yourusername@github.com"]
    insteadOf = https://github.com

[credential]
    helper = cache --timeout=28800

Fuente:

http://git-scm.com/docs/git-credential-cache

http://git-scm.com/docs/git-config


24



Funcionó a las mil maravillas. Gracias. - david euler


Si está en Windows usando HTTPS, intente Tienda de credenciales de Git - usa la tienda de credenciales de Windows para guardar su nombre y contraseña.

Windows Credential Store for Git
This application is a small helper app designed to follow the 
git credentials API as defined by the Git Documentation.

Installation
1. Download the git-credential-winstore.exe application
2. Run it! If you have GIT in your PATH, it should just work.

Luego, la próxima vez que ingrese su nombre y contraseña, los recordará por usted.


6



Gracias. El proyecto fue renombrado a Git-Credential-Manager-para-Windows. - Michael S.


Cuando configura una clave ssh para github, si no es su clave predeterminada, deberá agregar una sección a su ~/.ssh/config

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa

5





Además, si desea que se le pida su contraseña cada vez, pero no su nombre de usuario, configure el control remoto como HTTPS con un nombre de usuario. Me gusta esto ..

git config remote.origin.url https://USERNAME@github.com/repo_owner/repo_name

Después de esto, se le pedirá su contraseña cada vez, pero no su nombre de usuario.

Así es como lo prefiero, ya que me gusta que me obliguen a escribir mi contraseña de github antes de compartirla con el mundo.


5





Las cosas son un poco diferentes si estás usando autenticación de 2 factores como yo. Como no encontré una buena respuesta en otro lugar, voy a poner una aquí para que pueda encontrarla más tarde.

Si usa autenticación de 2 factores, especificar el nombre de usuario / contraseña no funcionará: se obtiene acceso denegado. Pero puede usar un token de acceso a la aplicación y usar el credencial de git para guardarlo en caché. Aquí están los enlaces pertinentes:

Y no recuerdo dónde vi esto, pero cuando te piden tu nombre de usuario, ahí es donde guardas el token de acceso a la aplicación. Luego deja la contraseña en blanco. Trabajé en mi mac.


2





Además, si usa Windows, puede usar:

$ git config --global credential.helper wincred

solo tienes que iniciar sesión una vez más y luego Git lo recordará.


1