Toda la información reproducida se puede encontrar en la sección Configure multiple SSH identities for GitBash, Mac OSX, & Linux de la documentación de Bitbucket.
https://confluence.atlassian.com/bitbucket/configure-multiple-ssh-identities-for-gitbash-mac-osx-linux-271943168.html
Paso 1: Crear una identidad
Para crear una nueva identidad vamos a utilizar el comando: ssh-keygen.En el siguiente ejemplo la identidad se va a llamar red-ribon-c18-project:
ssh-keygen -f ~/.ssh/red-ribon-c18-project -C "red-ribon-c18-project"
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/eltortuganegra/.ssh/red-ribon-c18-project.
Your public key has been saved in /home/eltortuganegra/.ssh/red-ribon-c18-project.pub.
The key fingerprint is:
f8:54:08:6f:6f:d4:59:73:45:b1:4d:df:49:f5:aa:10 red-ribon-c18-project
The key's randomart image is:
+---[RSA 2048]----+
| . o+X|
| o . . o.+B|
| + E o o=|
| o + . . |
| . S + . |
| o . . . |
| . . |
| |
| |
+-----------------
Podemos comprobar que la clave se ha creado correctamente:
ls -lah ~/.ssh
-rw------- 1 eltortuganegra eltortuganegra 1.7K Oct 18 13:37 red-ribon-c18-project
-rw-r--r-- 1 eltortuganegra eltortuganegra 403 Oct 18 13:37 red-ribon-c18-project.pub
Con este procedimiento podemos crear tantas identidades como necesitemos.
Paso 2: guardar la key en Bitbucket
Para poder acceder a esta funcionalidad hay que tener los permisos suficientes. Una vez logados en Bitbucket y seleccionado el proyecto objetivo hay que ir a la sección de "settings" y allí buscar en el submenú "deployment keys".Aquí podremos ver la página de "deployment keys" y tendremos la posibilidad de añadir nuevas.
Para añadir una nueva pinchamos el botón "add key" y rellenamos el formulario con un nombre descriptivo y con el contenido de la "key.pub".
Paso 3: crear un fichero de configuración SSH
El fichero de configuración va contener la configuración las identidades a las cuales las podemos definir un alias. El fichero de configuración se encuentra en:~/.ssh/config
En el caso de que no exista se crea con un editor de texto. Aunque las opciones de configuración son varias, en este ejemplo se va a utilizar la siguiente plantilla:
Host alias
HostName bitbucket.org
IdentityFile ~/.ssh/identity
Por lo que en nuestro ejemplo la configuración quedaría:Host red-ribon-c18-project
HostName bitbucket.org
IdentityFile ~/.ssh/red-ribon-c18-project
En el caso de tener más de una identidad esta se añade al fichero. En el ejemplo:Host red-ribon-c18-project HostName bitbucket.org IdentityFile ~/.ssh/red-ribon-c18-project
Host red-ribon-c17-project HostName bitbucket.org IdentityFile ~/.ssh/red-ribon-c17-project
Paso 4: configurar el repositorio de git
Una vez creada la clave de la identidad hay que configurar el repositorio para que utilice esta clave. Para ello hay que editar el archivo:/path/project/.git/config
Si el proyecto estuviera ubicado en:
/var/www/c18
Tendriamos que editar el archivo:/var/www/c18/.config/config
Bitbucket dispone de varias maneras de identificar la url del repositorio por lo que, dentro del archivo, hay que sustituir la variable url por el siguiente formato:
url = git@alias:<accountname>/<reponame>.git
Por lo que si el projecto se encuentra en la cuenta "red-ribon" y el projecto es c18" la url quedaría:
Nota: ojo a los ":" que pueden dar algún quebradero de cabeza (true history).
url = git@
red-ribon-c18-project
:red-ribon/c18.git