password - git rename tag
Tener problemas para cambiar las cuentas de Github en la terminal (1)
El problema es que su ssh local todavía está ofreciendo su clave SSH "antigua" a GitHub. Esto a menudo aparece cuando tiene una clave reconocida por GitHub (es decir, su clave "anterior") cargada en un agente ssh pero quiere usar una clave diferente reconocida por GitHub (es decir, su "nueva" clave).
ssh ofrece claves en este orden:
- claves especificadas que se han cargado en el agente
- otras claves que se han cargado en el agente
- claves especificadas que no se han cargado en el agente
Por "claves especificadas" me refiero a las claves especificadas por la opción de línea de comando -i
o la opción de configuración de IdentityFile
(que se puede dar a través de ~/.ssh/config
o la opción de línea de comando -o
).
Si su clave "antigua" se carga en el agente, pero su clave "nueva" no es, entonces ssh siempre ofrecerá su clave "antigua" (de la primera o segunda categoría) antes de su "nueva" clave (solo en el última categoría ya que no está cargada), incluso cuando especifica su "nueva" clave con -i
/ IdentitiesOnly
.
Puede verificar qué claves están cargadas en su ssh-agent con ssh-add -l
. Si su clave "anterior" aparece en la lista, puede solucionar el problema descargándolo de su agente (asegúrese de descargar también cualquier otra clave reconocida por GitHub, excepto quizás su "nueva" clave):
ssh-add -d ~/.ssh/old_key_file
Si está utilizando Mac OS X, el sistema puede cargar automáticamente su clave "anterior" si marcó "Recordar contraseña en mi llavero" cuando se le solicite la contraseña en un punto; Puede desactivar esta carga automática eliminando la entrada de Llavero para la llave con el comando
/usr/bin/ssh-add -K -d ~/.ssh/old_key_file
. Otros sistemas pueden hacer algo similar, pero los comandos para decirles que "detengan eso" serán diferentes.
En lugar de descargar la clave "vieja" de su agente, puede configurar la opción de configuración IdentitiesOnly
en yes
, para decirle a ssh que saltee la segunda categoría de claves (claves cargadas por agentes no especificadas). Su ~/.ssh/config
puede incluir una sección como esta:
Host github.com
User git
IdentityFile ~/.ssh/id_rsa # wherever your "new" key lives
IdentitiesOnly yes
De esta forma, no importará si se cargan otras claves reconocidas por GitHub en su agente; ssh siempre ofrecerá solo su clave "nueva".
Si anticipa tener que acceder a los repositorios de ambas cuentas de GitHub y no quiere tener que editar el archivo de configuración cada vez que quiera cambiar entre las cuentas de GitHub, entonces puede configurar su ~/.ssh/config
esta manera:
Host clientname.github.com
HostName github.com
IdentityFile ~/.ssh/client_id_rsa # or wherever your "old" client key lives
Host github.com
IdentityFile ~/.ssh/id_rsa # or wherever your "new" key lives
Host github.com *.github.com
User git
Hostname github.com
IdentitiesOnly yes
Luego use URLs como github.com:GitHubAccount/repository
para sus repositorios y URL como clientname.github.com:GitHubAccount/repository
para los repositorios de su cliente (puede volver a poner el prefijo git@
si lo desea, pero no es necesario ya que las entradas anteriores establecen la variable de configuración del User
).
Ha pasado un tiempo desde que presioné algo para GitHub. Inicialmente configuré mi cuenta en mi computadora, y todo funcionó de maravilla. Luego cambié mi cuenta a la cuenta de un cliente (para poder enviar el código a su repositorio privado).
Ha pasado un tiempo y ahora estoy volviendo a mi cuenta anterior, y estoy teniendo problemas. Genere un nuevo rsa_key y seguí las instrucciones aquí a un T.
Sin embargo, cuando ssh -T [email protected]
: ssh -T [email protected]
obtengo:
Hola antiguo nombre de usuario incorrecto! Se ha autenticado con éxito, pero GitHub no proporciona acceso de shell.
Tampoco puedo presionar mis repositorios porque este nombre de usuario anterior no está autorizado. He verificado dos veces mis claves ssh en mi computadora y en la configuración de mi cuenta en GitHub.
También configuré las variables de mi cuenta global:
git config --global user.name "Firstname Lastname"
git config --global user.email "[email protected]"
git config --global github.user username
git config --global github.token 0123456789yourf0123456789token
Y aún me está dando el nombre de usuario anterior.
¿Alguna sugerencia?
Gracias,