¿Cómo restablece las credenciales almacenadas en 'git credential-osxkeychain'?

98

Seguí las instrucciones de GitHub para configurar mi cuenta y puedo clonar, pero no puedo presionar de forma remota.

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

Creo que lo que sucedió fue la primera vez que pidió las credenciales, pensé que era otra aplicación solicitando y colocó las incorrectas.

Solo necesito restablecerlo para que use el elemento de llavero correcto para mi cuenta de GitHub.

He intentado:

git credential-osxkeychain erase
git credential-osxkeychain set

El programa nunca da indicaciones. El conjunto dirá "entrada incorrecta" si no hago lo correcto. Intenté poner " password=password", etc., pero luego, cuando hago un "get", todavía obtengo los viejos.

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

nirvana
fuente
Relacionado, agnóstico del asistente de credenciales: stackoverflow.com/questions/21745213/…
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
Probablemente lo mismo en Windows: stackoverflow.com/questions/15381198/…
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Respuestas:

122

Desde la Terminal:

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

NOTA: después de ingresar "protocol = https" arriba, debe presionar ~~ RETURN ~~ DOS VECES

maz
fuente
2
Por alguna razón, no pude encontrar ninguna credencial de Git / GitHub dentro de la aplicación Keychain, pero funcionó. ¡Gracias!
Donald
4
Dado que esto no me quedó claro: debe ingresar las 3 líneas anteriores y luego presionar retorno nuevamente, es decir, las líneas 2/3 anteriores no son la salida del comando, sino la entrada.
Frederik
Esta respuesta me ayudó. ¡Muchas gracias!
Ken Flake
70

No estoy seguro de cómo borrar a través de la línea de comando, 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.

benzado
fuente
4
Si alguien que lee 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 de manual indica que tiene un delete-internet-passwordcomando.
benzado
Gracias por la actualización, estoy seguro de que le será de utilidad a alguien.
funroll
esta es la mejor solución
Elias Fazel
¿De qué llavero?
Bryan Bryce
28

La solución resultó ser esta:

El comando git credential-osxkeychainestaba usando la primera entrada de cuenta de GitHub en mi llavero. Éste no era el que tenía acceso a los proyectos en cuestión.

Resolví el problema tocando la cuenta en Keychain Access para que cambiara su fecha (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 que regresó a credential-osxkeychain, y así todo funcionó .

Sería bueno una mejor forma de soporte para múltiples cuentas de GitHub, pero es probable que la mayoría de las personas solo tengan una cuenta principal y no se encuentren con este problema.

nirvana
fuente
2
No estoy seguro de cómo funciona esto para varios usuarios en el mismo host, pero puede consultar ssh y usar un ~/.ssh/configarchivo en lugar de usar OSX Keychain. Esto se utiliza en los casos en los que puede tener varias claves ssh para diferentes hosts (y también cuentas de pensamiento). nerderati.com/2011/03/17/…
jusopi
10

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

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

MacFreek
fuente
7

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

O elimínelo manualmente del llavero desde AplicacionesUtilidadesAcceso al llavero . Luego, quita el llavero de github.com. Luego use empujar; le pedirá el acceso al llavero; luego niega.

Le pedirá el nuevo nombre de usuario y contraseña, lo agregará y luego enviará un archivo para eso.

Después de git pushque encontré este error. Luego utilizo el problema de mayúsculas:

remoto: Permiso al usuario1 / archivo.git denegado al usuario2 (usuario previamente existente) fatal: no se puede acceder a ' https://github.com/xxxxxxxxxxxx/ ': la URL solicitada devolvió el error: 403

Amit Kumar
fuente
6

Intenta correr /Applications/Utilities/Keychain Access.

Echristopherson
fuente