Cómo Gestionar Múltiples Claves SSH para tus Cuentas de GitHub o Bitbucket
Trabaja de manera segura desde diferentes dispositivos
Como desarrolladores, generalmente usamos nuestra clave pública SSH para comunicarnos con los gestores de GIT. Es muy común tener una cuenta personal y una cuenta de trabajo, o una cuenta para cada cliente, pero esto tiene una complicación.
El problema viene cuando queremos tener una única clave pública para cada uno de los usuarios. En el caso de Bitbucket nos encontraremos con este mensaje:
Bitbucket no permite que una clave pública sea utilizada por dos usuarios. Por tanto, vamos a necesitar una clave diferente para cada usuario.
Por ello, nuestro objetivo será encontrar la forma de que GIT sea capaz de entender qué clave debe usar en función del proyecto o usuario.
Creando múltiples claves para múltiples cuentas
El sistema ideal es tener una clave SSH para cada cliente o para cada cuenta de Bitbucket que tengamos, pero la gestión de éstas se hace complicada. Sin embargo, podemos crear un archivo de configuración que resolverá todos nuestros problemas y decidirá cuándo se debe usar una clave u otra.
Nota: Estos pasos están pensados para entornos UNIX.
Creando nuestros pares de claves:
El comando es muy sencillo:
- Vamos a la carpeta
~/.ssh
. - Ejecutamos
ssh-keygen
para iniciar el sistema de generado de clave. - Elegimos un nombre para nuestro par de claves.
Repetimos esta acción con todas las cuentas para las cuales queramos crear un par de claves.
En este caso tendré los siguientes pares de claves:
id_rsa_personal
yid_rsa_personal.pub
id_rsa_empresa1
yid_rsa_empresa1.pub
id_rsa_empresa2
yid_rsa_empresa2.pub
Creando el archivo de configuración
Ahora necesitamos que, cuando hagamos git clone
por SSH, el sistema sea capaz de interpretar qué clave SSH debe solicitar.
Creamos un nuevo archivo dentro de nuestra carpeta ~/.ssh
llamado config
Este archivo será el encargado de decidir qué clave SSH solicitar en función de la cuenta de Bitbucket/GitHub desde la que hagamos la petición.
Un pequeño detalle a tener en cuenta es que es necesario que el host de Bitbucket tenga el formato <nombreEmpresa>.bitbucket.org.
Sin embargo, nuestros clone
de Bitbucket se parecen más a:
git clone git@bitbucket.org:<nombreEmpresa>/myApp.git
Para que el filtro del host funcione, simplemente tendremos que modificar la URL para que quede de la siguiente manera:
git clone git@<nombreEmpresa>.bitbucket.org:<nombreEmpresa>/myApp.git
El sistema seguirá funcionando exactamente igual, pero nos solicitará la contraseña de la clave SSH correcta y de esta forma podremos gestionar todas nuestras cuentas sin tener que cambiar la configuración de GIT.
❤