2012-06-16 49 views
53

He seguido las instrucciones de GitHub para configurar mi cuenta, y puedo clonar, pero no puedo presionar de forma remota.¿Cómo se restablecen las credenciales almacenadas en 'git credential-osxkeychain'?

Cuando hago un "git push" recibo el error 403. Tiene la URL correcta. Intenté una "credencial de git-osxkeychain get" para ver lo que estaba dando, y esto imprime las credenciales incorrectas.

Creo que lo que pasó es la primera vez que pidió las credenciales, pensé que era otra aplicación pidiendo, y se puso el mal queridos en.

sólo hay que reiniciarlo para que utilice la correcta artículo de llavero para mi cuenta de GitHub.

que he probado:

git credential-osxkeychain erase 
git credential-osxkeychain set 

El programa nunca da ningún mensaje. Set dirá "entrada incorrecta" si no hago lo correcto. Intenté poner "password=password", etc., pero luego cuando hago un "obtener" todavía obtengo los viejos.

No puedo averiguar dónde se están almacenando, ya que no están en .gitconfigure. Además, no hay elementos recientes de llavero que puedan serlo. (Tengo varias cuentas de GitHub en mi llavero y no está utilizando ninguna de ellas).

+0

relacionada, ayudante de credenciales agnóstico: http://stackoverflow.com/questions/21745213/changed-github-password-no-longer-able-to-push -back-to-the-remote –

+0

Probablemente lo mismo en Windows: http://stackoverflow.com/questions/15381198/remove-credentials-from-git –

+0

[Puede configurar esta utilidad de ayuda para asociar su inicio de sesión con repos específicos en lugar que dominios enteros, en caso de que quiera usar varias cuentas. Más sobre eso aquí] (http://stackoverflow.com/a/31351376/1922144) – davidcondrey

Respuesta

19

La solución resultó ser la siguiente:

El comando git credential-osxkeychain estaba usando la anotación en cuenta primera GitHub en mi llavero. Este no fue el que tuvo acceso a los proyectos en cuestión.

Resolví el problema tocando la cuenta en Acceso de llavero para que su fecha cambiara (creo que acabo de cambiar el comentario) y ahora que se convirtió en la cuenta de GitHub más reciente se convirtió en la primera devuelta a credencial-osxkeychain, y así todo funcionó.

Una mejor forma de soporte para múltiples cuentas de GitHub estaría bien, pero es probable que la mayoría de las personas solo tenga una cuenta principal y no tenga este problema.

+2

No estoy seguro de cómo funciona esto para múltiples usuarios en el mismo host, pero puede verificar ssh y usar un archivo '~/.ssh/config' en lugar de utilizar OSX Keychain. Esto se usa en casos en los que puede tener varias claves ssh para diferentes hosts (y también cuentas inteligentes). http://nerderati.com/2011/03/17/simplify-your-life-with-an-ssh-config-file/ – jusopi

+0

¡Eres un maldito héroe! – Cristian

54

No estoy seguro de cómo borrar a través de la línea de comandos, pero es bastante fácil hacerlo a través de la aplicación Keychain Access. Simplemente vaya a Aplicaciones -> Utilidades -> Acceso a Llaveros, luego ingrese "github.com". Puede eliminar el elemento no válido o actualizar la contraseña desde la aplicación.

+2

Si alguien leyendo esto descubre cómo hacerlo desde la línea de comandos, sería bueno saberlo. – funroll

+1

@funroll La herramienta de línea de comandos es 'security'. La página man indica que tiene un comando 'delete-internet-password'. – benzado

+0

Gracias por la actualización, estoy seguro de que será útil para alguien. – funroll

9

git-credential-osxkeychain almacena las contraseñas en Apple Keychain, como se indicó anteriormente.

De forma predeterminada, gitcredentials solo tiene en cuenta el nombre de dominio. Si desea que Git considere la ruta completa (por ejemplo, si tiene varias cuentas de GitHub), configure la variable useHttpPath en true, como se describe en http://git-scm.com/docs/gitcredentials.html. Tenga en cuenta que al cambiar esta configuración, volverá a solicitar sus credenciales para cada URL.

40

Desde la Terminal:

$ git credential-osxkeychain erase 
host=github.com 
protocol=https 
<press return> 
+1

Genial, funciona con git credencial-wincred erase too –

+2

Por alguna razón no pude encontrar ninguna credencial Git/GitHub dentro de la aplicación Keychain, pero funcionó. ¡Gracias! – Donald

3

En Mac, utilice el comando git credential-osxkeychain erase.

o eliminar manualmente del llavero de Aplicaciones → Utilidades Acceso a Llaveros. A continuación, retire el llavero github.com. Luego usa push; pedirá el acceso al llavero; entonces negar

Le pedirá el nuevo nombre de usuario y contraseña, añádalo y luego inserta un archivo para eso.

Después de git push Encontré este error. Luego utilizo el tema superior caso- :

remote: Permission to user1/file.git denied to user2(previously exist user ). fatal: unable to access ' https://github.com/xxxxxxxxxxxx/ ': The requested URL returned error: 403

Cuestiones relacionadas