Para la comunicación entre mi máquina local y el servidor de control de versiones Bitbucket por HTTPS, es necesario autenticarse (proporcionado mi usuario y contraseña) cada vez que quiero realizar una acción que se comunique con el servidor de Bitbucket. En esta entrada les detallo como pueden utilizar el Secure Shell (SSH) para evitar tener que autenticarse a cada momento con Bitbucket y puedan hacer sus “git push” y “git pull” con mayor rapidez.
1. Conceptos iniciales sobre SSH
Para utilizar SSH con Bitbucket, se crea una identidad de SSH. Una identidad consiste en una llave privada y una llave pública que en su conjunto son un par de llaves(claves). La llave privada reside en su equipo local y la pública se sube a tu cuenta Bitbucket.
Una vez que subes la llave pública a tu cuenta, puedes usar SSH para conectarse con los repositorios que hayas creado y con los de propiedad de otros, siempre que esos otros dueños te hayan dado permisos a de acceso a tu cuenta. Con la creación de SSH entre tu sistema local (computador) y el servidor Bitbucket, el sistema utiliza el par de llaves para automatizar la autenticación, por lo que no tendrá que introducir la contraseña cada vez que interactuas con tu repositorio Bitbucket.
2. Verifica si tienes una identidad SSH en tu computador.
El shell Bash de Git viene con un cliente SSH. Haga lo siguiente para verificar la instalación:
2.1. Has doble clic en el icono de Git Bash para iniciar una sesión de terminal.
2.2. Escribe el siguiente comando para verificar que el cliente SSH está disponible:
tecgurus@tecgurus-ubuntu:/$ ssh -v OpenSSH_5.9p1 Debian-5ubuntu1.2, OpenSSL 1.0.1 25 Agost 2017 usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command] |
2.3. Si has instalado ssh, ve al siguiente paso. Si no tienes ssh instalado, instale desde su gestor de paquetes.
3: Configura tu identidad por defecto.
Por defecto, el sistema añade todas las identidades en su directorio /Users/sunombre/.ssh. El siguiente procedimiento crea una identidad por defecto.
3.1.Abre una terminal en el sistema local.
3.2.Introduce ssh-keygen en la línea de comandos.
3.3.El comando solicita un archivo para guardar la llave en:
tecgurus@tecgurus-ubuntu:/$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/vagrant/.ssh/id_rsa): |
3.4.Presiona [Enter] para aceptar la clave predeterminada (con nombre id_rsa) o puede crear una clave con otro nombre. Para crear una clave con un nombre distinto del predeterminado, especifique la ruta completa a la tecla.
3.5.Ingresa una contraseña cuando se te solicite. Toda la interacción tiene una apariencia similar a la siguiente:
tecgurus@tecgurus-ubuntu:/$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in id_rsa_vagrant. Your public key has been saved in id_rsa.pub. The key fingerprint is: 0d:39:23:48:38:a6:99:25:23:eb:80:3d:fb:ef:a2:ff gchacaltana@gchacaltana-ubuntu The key's randomart image is: +--[ RSA 2048]----+ | .. | |+ =. . . | |o@ .. . = | |B o . = | |o o S . | | .. | | . | | o | | .o.=E | +-----------------+ |
3.6.Lista tus identidades creadas con ~ /. ssh.
Debería ver algo como lo siguiente:
4. Crea un archivo de configuración de SSH
4.1. Usando tu editor favorito, modifique el archivo ( o cree uno nuevo) : ~/.ssh/config file
4.2. Añade la siguiente entrada al archivo de configuración.
Host bitbucket.org IdentityFile ~/.ssh/privatekeyfile |
4.3.La segunda linea tiene sangría. Esa sangría (solo es un (1) espacio) es importante, así que asegurate de incluirlo. La segunda linea es la ubicación de tu llave privada. Deberia quedar algo similar a esto:
Host bitbucket.org IdentityFile ~/.ssh/id_rsa |
4.4. Guarda y cierra el archivo.
4.5. Reinicia el GitBash (terminal).
5. Sube la llave pública a tu cuenta Bitbucket.
5.1.Con un navegador accede a tu cuenta de Bitbucket.
5.2.Selecciona de tu menu: perfil > “Manage account”.
El sistema mostrará la página Configuración de la cuenta.
5.3. Has clic en la opción del menú “claves SSH” (SSH Keys). Se muestra una lista de todas las claves existentes. Luego, has clic en introducir una nueva clave “Add key”.
5.4. Se mostrará un formulario donde se te indicara que ingreses un nombre (el que guste) y la llave (“Key”). Es ahí donde debes introducir tu llave pública.
5.5. Para obtener tu llave publica has lo siguiente desde su terminal (GitBash):
cat ~/.ssh/id_rsa.pub |
5.6.Copia el contenido de tu llave pública e ingresarlo en el input (“Key”).
5.7.Luego de pegar tu llave pública, has clic en el boton “Add Key”.
5.8. Para saber que tu maquina local tiene conexion ssh con bitbucket, has lo siguiente:
tecgurus@tecgurus-ubuntu:/$ ssh -T git@bitbucket.org |
Debe aparecer un mensaje similar al siguiente
tecgurus@tecgurus-ubuntu:/$ ssh -T git@bitbucket.org logged in as gchacaltana You can use git or hg to connect to Bitbucket. Shell access is disabled. |
Eso es todo, ahora a trabajar con tus repositorios bitbucket.
Te esperamos en los próximos artículos en donde hablaremos mas acerca de estos temas que hoy en día son de importancia e interés en el mundo de la tecnología.
Gracias!, este artículo me ha sido de mucha utilidad
Muchas gracias por leernos, esperamos seguir creando contenido de tu interes 🙂