Si bien el artículo se refiere a Bitbucket, es valido para cualquier sistema de repositorios GIT que requieran autenticación SSH.
Si bien es posible tener un único usuario en Bitbucket y darle acceso a diferentes workspaces, es habitual necesitar una cuenta personal de Bitbucket para nuestros proyectos y otra (u otras) cuentas de la empresa donde trabajamos o repositorios de clientes.
El problema es que una misma clave SSH no puede estar asociada a mas de un usuario.
La solucion es bastante simple, consiste en tener 2 claves SSH en nuestra computadora y asignarlas cada una a un usuario en Bitbucket
La manera de generar una clave en Linux es con el comando “ssh-keygen” dentro del directorio oculto “~/.ssh”
Si ya tienen una clave actualmente, se debe crear una nueva con un nombre diferente
ssh-keygen -f ~/.ssh/second_id_rsa -C "secondsshkey"
El siguiente paso es crear un archivo “config” dentro del mismo directorio (“~/.ssh”)
En este archivo estableceremos los “alias” para saber en que caso usar una u otra clave
Host bitbucket.org
Hostname bitbucket.org
IdentityFile ~/.ssh/id_rsa
Host bitbucket.olivertar
Hostname bitbucket.org
PreferredAuthentications publickey
IdentityFile ~/.ssh/second_id_rsa
El primer HOST se llama como el host por defecto de de Bitbucket (bitbucket.org) y en caso de invocarse usara la clave SSH por defecto (id_rsa)
Pero si invocamos el host usando el segundo alias (bitbucket-2) se utilizara la otra clave SSH (second_id_rsa)
Estos son ejemplos de como usar los alias en el comando “clone”
git clone git@bitbucket.org:usuario-de-mi-trabajo/repositorio-proyecto-1.git
git clone git@bitbucket.olivertar:olivertar/repositorio-proyecto-2.git
En caso que ya tengan repositorios clonados y necesiten modificar la configuracion para implementar el nuevo usuario hay que modificar la URL del “origin” en el archivo de configuracion del repositorio (“.git/config”))