Como usar multiples cuentas de GitHub (por https)
Es posible que algunos de vosotros tengais varias cuentas de GitHub (una personal, otra del trabajo, …) y por algún motivo querais acceder a ellas por https en vez de por ssh que es como muchos la tendreis configurada.
Cuando uno quiere hacer un "Push" y accede a GitHub por https te pide la primera vez que insertes el usuario y contraseña de la cuenta y una vez que los has insertado te suele guardar en el llavero de tu PC las credenciales de ese acceso para que las proximas veces no tengas que volver a insertar tu usuario y contraseña. En la siguiente imagen vemos como me guarda en el llavero de mi PC el usuario y contrasela de la cuentas de GitHub de Jarroba; es decir, me guarda la contraseña para acceder a la web de https://github.com:
Por otro lado tengo creada otra cuenta de GitHub personal (con usuario RicardoMoya) y al querrer hacer un Push a un reposito me dice que tengo el acceso denegado y me devuelve un 403 (Prohibido):
En este caso me prohibe el acceso porque en el llavero de claves tengo guardadas las credenciales (Usuario = jarroba + Password) de la cuenta de Jarroba y no de la mia, por tanto coge las credenciales de la "ubicación: https://github.com".
Para solucionar esto, tengo que configurar mi git para que me genere una ubicación distinta por cada repositorio (independientemente de si accedo con mi cuenta personal o con la de Jarroba). De esta forma solo me pedirá el usuario y la contraseña la primera vez que haga un "Push" en un repositorio. Veamos como configurarlo:
En primer lugar vamos a configurar el fichero de configuración de git. Para ello ejecutemos el siguiente comando:
git config --global --edit
Al ejecutar este comando nos abrirá el fichero de configuración de nuestro git y pondremos las credenciales de cada una de las cuentas de git que tengamos (en este caso dos cuentas). Por otro lado indicaremos el uso del "osxkeychain" para el cacheo de las credenciales (vamos para que nos recuerde el usuario y password) y que nos la guarde por la URL que le indicamos en cada credencial; es decir, una URL por proyecto:
[credential] helper = osxkeychain useHttpPath = true [credential "https://github.com/RicardoMoya"] username = RicardoMoya [credential "https://github.com/jarroba"] username = jarroba
Con estas credenciales nos generará en el llavero de claves un item por cada repositorio, por lo que solo habrá que insertar la primera vez que hagamos un "Push" el usuario y el password de la cuenta de GitHub donde tengamos el repositorio. Veamos como quedarian las credenciales para un repositorio de cada una de las cuenetas configuradas:
De esta forma hemos visto como al acceder a una cuenta de GitHub por HTTPS nos genera una credencial que la guarda por defecto en el llavero de claves de nuestro PC y que sino configuramos nuestro git de forma correcta nos cogerá una credencial incorrecta si accedemos a una cuenta de GitHub distinta de la primera, por tanto una solución a este problema es la que se plantea en este tutorial. Bien es cierto de que en este tutorial se esta dando una solución concreta para el acceso por HTTPS pero lo ideal sería configurar tus cuentas de GitHub mediante SSH.
Como configurar el GIT local para que maneje 2 cuentas de GitHub de forma simultanea.
Comando para crear Clave SSH:
ssh-keygen.exe
Configuración de archivo config:
Ruta: C\Users\XXXX\.SSH
# Github Personal
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_github
# Github work
Host github.com-work
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_github_work
TITAN!!!!!!!!!!!!!!!!!!!!!! MUCHISIMAS GRACIAS!!!!!!!!!!!!!!!!!! ME RE SALVASTE!!!!!!!!!!!!!!!!!!!
tengo otra consulta, como se pueden agregar llaves para distintas cuentas de email y distintas cuentas de github en la misma conpu, yo tengo mac y es un lio para mi.
desde ya muchas gracias