Configurar una clave SSH para BitBucket


En este post aprenderemos a configurar una clave SSH para bitbucket para poder acceder al repositorio desde un S.O. windows

oscar Escrito por oscar 05 December 2022 4370 0

Configurar una clave SSH para Bitbucket es una de las mejores prácticas de seguridad cuando trabajas con repositorios privados o públicos. Con SSH, puedes conectarte a Bitbucket sin necesidad de ingresar tu usuario y contraseña cada vez que hagas un push o pull.

En esta guía aprenderás, paso a paso, cómo generar una clave SSH y configurarla correctamente en tu cuenta de Bitbucket.[1]

馃搶 ¿Qué es una clave SSH y para qué sirve?

En el post SSH key: guía completa de las llaves públicas y privadas de SSH damos la explicación de las claves SSH, a continuación, daremos un resumen de lo mas importante:

Una clave SSH está compuesta por:

  • 馃攼 Clave privada → Se queda en tu computadora (no la compartas).
  • 馃敁 Clave pública → Se añade a tu cuenta de Bitbucket.

Puedes leer

Directorio donde se general las claves públicas y privadas, Por defecto las claves se generan en los siguientes directorios:

  • En Windows las claves se crean en el directorio %userprofile%\.ssh\, donde %userprofile% apunta al directorio de inicio del usuario actual: c:\Users\NombreUsuario
  • El Linux las claves se crean en ~/.ssh/, que equivale a la ruta /home/tu_usuario/.ssh/

馃敡Generar una nueva clave SSH

Ingresamos a una ventana de comandos, puede ser la de CMD o de GitBash y en ella escribimos el comando ssh-keygen:

ssh-keygen -t ed25519 -f nombre_de_tu_clave -C "tu-correo@ejemplo.com"

Donde:

  • -t Especificar el tipo de clave
  • -f Especificar el nombre del archivo de clave
  • -C Comentarios adicionales

Al ejecutar el comando, nos pedirá la siguiente información:

  • Nombre y ubicación por defecto del archivo: /home/tuusuario/.ssh/id_nombre_key
  • Frase de la contraseña (passphrase), es opcional, pero recomendado llenar para mas seguridad

Al finalizar generara las llaves en la ubicación por defecto

Key SSH generada con ssh-keygen
Key SSH generada con ssh-keygen

Al revisar el directorio debe de crear el id_rsa y id_ras.pub (o nombre creado con el argumento -f).

Crear claves SSH adicionales

Si tiene varias cuentas de Bitbucket u otro repositorio,Tendrás que crear una clave SSH adicional para cada cuenta de adicional que tengas o para cada ordenador que utilices. Por ejemplo, si tienes cuatro cuentas de Bitbucket, necesitas generar 3 nuevas claves SSH, lo que significa que tendrás 4 claves en total.

El problema es que al usar el comando por defecto empezara a sobrescribir las claves, pero vamos a usar una bandera que permite crear varias claves asignando un nombre con ssh-keygen -f ~/.ssh/<username>, veamos como es:

ssh-keygen -f ~/.ssh/codigoelectronica

Al revisar el directorio debe de crear el codigoelectronica y codigoelectronica.pub, El comando muestra dos archivos, uno para la clave pública (por ejemplo,codigoelectronica.pub) y otro para la clave privada (por ejemplo, codigoelectronica).

Agregar la clave al ssh-agent

El agente SSH permite cargar tus claves para no ingresar la passphrase cada vez. Para iniciar el agente, ejecute lo siguiente:

Linux / macOS:

eval "$(ssh-agent -s)"

Windows (Git Bash):

eval $(ssh-agent -s)

Ahora agrega tu clave privada al agente:

$ ssh-add ~/.ssh/<private_key_file>聽

Respuesta:

Enter passphrase for bitbucket-ssh:
Identity added: bitbucket-ssh (codigoelectronica@gmail.com)

Nota: si esta en Windows y ejecuta el comando anterior y da error de eval no se reconoce como comando, debe hacer la ejecución en una termina bash, puede usar la de git, en el post Instalar Git explico como instalar esta terminal con Git.

Configurar varias claves para el mismo repositorio git

Puede que necesite dos o mas accesos a distintos repositorios de bitbucket y configurar sus claves, para estos casos vamos a crear un archivo de configuración dentro de la carpeta .ssh que permitirá asociar un nombre especifico a una clave SHH.

En el post ¿Cómo configurar varias claves privadas SSH para diferentes repositorio git? explico a detalle el tema, a continuación, doy un resumen:

Creamos dentro de .ssh un archivo llamado config

Dentro del archivo colocamos:

Host bitbucket-ssh
    HostName bitbucket.com
    User git
    IdentityFile ~/.ssh/bitbucket-ssh

Lo que indicamos es 

  • Host: que es la nueva ruta donde apuntar cada ves que usamos un git clone, o configurar los repositorios remotos
  • HostName: que es la url del repositorio, en este caso bitbucket, pero puede ser github, gitlab, entre otros.
  • IdentityFile: la key ssh creada 

Agregar la clave pública a la configuración de su cuenta

1锔忊儯 En Bitbucket, selecciona Configuración personal en tu avatar en la parte inferior izquierda.

Configuraci贸n personal
Configuración personal

2锔忊儯 Haga clic en Claves SSH. Si ya has añadido claves, las verás en esta página.

SSH Keys en personal setting
SSH Keys en personal setting

3锔忊儯 Abra el archivo su .ssh/id_rsa.pub (o el nombre que haya llamado archivo de clave pública) y copie su contenido.

Es posible que veas una dirección de correo electrónico en la última línea. No importa si incluyes o no la dirección de correo electrónico.

4锔忊儯 En Bitbucket, haz clic en Agregar clave.

Agregar key SSH
Agregar key SSH
  • Introduzca una etiqueta para la nueva clave, por ejemplo, clave pública predeterminada.
  • Pegue la clave pública copiada en el campo ClaveSSH.
  • Haga clic en Guardar. 

5锔忊儯 Bitbucket te envía un correo electrónico para confirmar la adición de la clave.

6锔忊儯 Vuelva a la línea de comandos y compruebe la configuración introduciendo el siguiente comando:

ssh -T git@bitbucket-ssh 聽

 El mensaje de comando te indica que puedes conectarte a Bitbucket con esa clave.

Respuesta: You can use git to connect to Bitbucket. Shell access is disabled

Referencias 

[1] Configurar una clave SSH | | de Bitbucket Cloud Soporte técnico de Atlassian

[2] Set up additional SSH keys | Bitbucket Cloud | Atlassian Support


Comentario

Debe aceptar antes de enviar