Bitbucket: Diferentes cuentas y misma clave SSH

abril 14, 2016

El escenario habitual es que tengamos una sola cuenta de Bitbucket con nuestra clave SSH asociada a ella, pero puede sernos útil tener una segunda cuenta para otro tipo de proyectos.

El problema es que Bitbucket no permite añadir la misma clave SSH a dos usuarios diferentes.

bitbucket_ssh_key

El error que nos devuelve es: «Someone has already registered that SSH key«.

Voy a suponer que aún no hemos añadido las claves SSH a nuestras cuentas en Bitbucket. Para este ejemplo, la primera cuenta será usuarioA y la segunda, usuarioB.

Primero debemos crear una clave SSH con el comando ssh-keygen:

ssh-keygen -t rsa -C "email@email.com"

Copiamos la clave generada que se encuentra en ~/.ssh/id_rsa.pub y la damos de alta en la cuenta del usuarioA en Bitbucket.

Ahora vamos a generar una nueva clave para el usuarioB:

ssh-keygen -t rsa -f ~/.ssh/usuarioB -C "email@email.com"

Lo que hacemos con el parámetro «-f ~/.ssh/usuarioB» es indicar el archivo donde guardar la nueva clave SSH (en este ejemplo, el archivo se llamará usuarioB).
Copiamos la clave que se ha creado en el archivo ~/.ssh/usuarioB.pub y la asociamos a la cuenta del usuarioB en Bitbucket.

Para poder utilizar múltiples claves SSH, tenemos que crear un archivo ~/.ssh/config con un contenido similar a este:

Host bitbucket.org
  User git
  Hostname bitbucket.org
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa
 
Host bitbucket-usuarioB
  User git
  Hostname bitbucket.org
  PreferredAuthentications publickey
  IdentitiesOnly yes
  IdentityFile ~/.ssh/usuarioB

Con esta configuración, podemos clonar repositorios del usuarioA de la forma habitual:

git clone git@bitbucket.org:usuarioA/proyecto.git

Si ahora queremos clonar un repositorio del usuarioB, utilizaremos la segunda clave SSH que hemos generado para este usuario:

git clone git@bitbucket-usuarioB:usuarioB/proyecto.git

Podríamos ampliar esta configuración para tener una clave SSH para cualquier cuenta que tengamos (Github, Bitbucket, etc.).

Tags ; , , , ,

Escribe un comentario

Los comentarios son moderados y se utiliza rel="nofollow" para los enlaces.