En algunas ocasiones es necesario tener configurada más de una cuenta de git en nuestro ordenador, nuestra cuenta personal y una adicional. Acá es donde surge la necesidad de tener dos o más cuentas de git en nuestro equipo.
Supongamos que ya tenemos nuestra cuenta personal configurada, vamos a configurar una cuenta laboral (porqué en ella hay repositorios privados y por ende no los podemos manejar con nuestra cuenta personal).
Para ello vamos a crear la llave publica y la llave privada SSH de la cuenta laboral (sin sustituir las que ya tenemos):
-
Abrimos la terminal y nos dirigimos a nuestra carpeta .ssh
-
Creamos la llave con el comando: ssh-keygen -t rsa -b 4096 -C "tu@correo"
ssh-keygen: Es el comando para crear la llave ssh.
-t rsa: Es el tipo de algoritmo que se va a utilizar para generar la llave.
-b 4096: Es el número de bits de la llave que se va a generar.
-C “tu@correo”: Es el email de GitHub que vamos a configurar. -
A continuación nos aparecerá un mensaje el cual nos indica que se están generando las llaves pública / privada, y en este punto es importante cambiarle el nombre a la llave que vamos a generar, con el fin de evitar sustituir la que ya tenemos configurada.
-
Ahora nos pedirá una contraseña (la cual podemos omitir presionando Enter, al igual que su confirmación):
-
Luego nos va a indicar que ya se han creado las llaves, y el resultado será:
En este punto ya tenemos dos pares de llaves (la cuenta personal / la cuenta laboral).
Lo siguiente será ir a GitHub, ingresar con nuestra cuenta laboral y configurar la llave SSH que acabamos de crear en nuestro ordenador:
-
Setting
-
SSH and GPG keys
-
New SSH keys
-
Title: Será el titulo de nuestra llave, podemos colocar algo que haga referencia ejemplo: “Cuenta Laboral - Portátil”
-
Key: En este campo vamos a pegar nuestra llave publica: cuenta_laboral.pub). Esto lo podemos hacer desde la consola con el comando cat. En este caso copiamos: cat cuenta_laboral.pub el resultado será lo que vamos a pegar en el campo ‘key’. También podemos abrir el archivo cuenta_laboral.pub con un editor de código y copiar su contenido.
En este punto ya tenemos las dos llaves configuradas (personal / laboral).
Ahora vamos a crear un archivo llamado config el cual nos va a permitir especificarle a nuestro ordenador cuando vamos a usar la cuenta personal y cuando vamos a usar la cuenta laboral.
Desde la consola y ubicados en la carpeta .ssh copiamos: touch config (con este comando estamos creando un archivo llamado config sin extensión).
Ahora vamos a abrir ese archivo con un editor de código y vamos a colocar lo siguiente:
#CUENTA PERSONAL
Host bitbucket
Hostname bitbucket.org
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
#CUENTA LABORAL
Host github
Hostname github.com
User git
PreferredAuthentications publickey
IdentitiesOnly yes
IdentityFile ~/.ssh/cuenta_laboral
Veamos que significa cada parámetro:
- #CUENTA PERSONAL / #CUENTA LABORAL: Es un comentario para hacer referencia a la cuenta
- Host: Es el parámetro que hace referencia a la cuenta. En este ejemplo cuando se utilice **bitbucket **utilizará el host de bitbucket.org y hará referencia a la llave id_rsa que será la cuenta personal.
Y cuando utilice github, utilizará el host de github.com y hará referencia a la llave cuenta_laboral
Ya tenemos todos nuestros pasos de configuración listos, ahora veamos como utilizarlos:
- Si trabajamos con nuestra cuenta personal sería:
git clone git@bitbucket:deveeup/repositorio.git proyecto_personal - Si trabajamos con nuestra cuenta laboral sería:
git clone git@github:deveeup/repositorio.git proyecto_empresa
El @github o @bitbucket es el mismo parámetro que colocamos en el archivo config y no necesariamente se deben llamar github o bitbucket, pueden ser @personal y @laboral y al momento de trabajar seria:
git clone git@personal:deveeup/repositorio.git proyecto_personal
git clone git@laboral:deveeup/repositorio.git proyecto_empresa
Y como último detalle podemos configurar 2 variables locales dentro de la carpeta del repositorio, con el fin de que los commits se asocie con la cuenta correcta:
git config user.name “Tu nombre"
git config user.email "tu@correo.com”
De esta forma en vez de utilizar los parámetros que se han configurado de manera global (en caso de que los tengas), pues se utilizarán los del proyecto.
Y los puedes ver con el comando: git config --list
Podrás conseguir más información de git y GitHub en el Curso profesional de Git y GitHub
Curso profesional de Git y GitHub 2017