October 30, 2022
SSH para Github, Gitlab, etc
Como crear llaves para nuestro entorno de trabajo para clientes GIT
blog picture
A visual depiction of what is being written about
Introducción

En algún punto de nuestro vida profesional, podemos encontrarnos en un escenario donde necesitemos generar nuestras llaves SSH KEY,para una mayor facilidad y comodidad, en este post veremos de una manera como hago para generar mis SSH, en diferentes clientes GITHUB y GITLAB.

Todos los pasos fueron realizados en un ambiente Linux/WSL con distribucion Ubuntu/Debian

Definición
SSH o Secure Shell, es un protocolo de administración remota que permite a los usuarios controlar y modificar sus servidores remotos a través de Internet. El servicio se creó como un reemplazo seguro para el Telnet sin cifrar y utiliza técnicas criptográficas para garantizar que todas las comunicaciones hacia y desde el servidor remoto sucedan de manera encriptada. Proporciona un mecanismo para autenticar un usuario remoto, transferir entradas desde el cliente al host y retransmitir la salida de vuelta al cliente.

Comenzamos
Paso 1.

Abrimos nuestra terminal favorita, y ejecutamos el siguiente comando

bash
$ ssh-keygen -t rsa -C "nombre_correo@dominio.extension"

Esto nos retornara un mensaje en la misma terminal que dira lo siguiente:

bash
$Generating public/private rsa key pair.
Enter file in which to save the key (/home/user_name/.ssh/id_rsa):

Lo que nos pide es lo siguiente:

  • Un nombre para identificar la llave, en mi caso le pondré “github_me”.
  • Una contraseña para la llave generada, recomendación utilizar una contraseña alfanumérico pero es cuestión de gustos personales.
  • Paso 2.

    Podemos verificar que se creo de manera correcta nuestros keys, con el siguiente comando:

    bash
    $ ls -la ~/.ssh

    Se recomienda que las llaves esten dentro de la carpeta “.ssh” para mayor comodidad.
    Paso 3

    Ahora entraremos a la carpeta “.ssh” y crearemos un archivo nombrado “config”

    bash
    $ cd ~/.ssh
    $ touch config
    $ vim config
    # File config
    # Personal account
    Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github_me
    # Gitlab account
    Host gitlab.com
    HostName gitlab.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/gitlab_me
    Paso 4

    Una vez creado el archivo “config”, agregaremos las llaves generadas.

    bash
    $ ssh-add ~/.ssh/github_me
    $ ssh-add ~/.ssh/gitlab_me
    Paso 5

    Ahora necesitamos copiar la llave y ponerla en el dashboard de GITHUB/GITLAB

    bash
    $ xclip -sel clip < ~/.ssh/github_me.pub
    Es posible de que el comando “xclip” talvez no este disponible, dejo un enlace como instalarlo
    ❌ Unsupported block (bookmark)

    Paso 6

    Ya agregado nuestras claves tanto en nuestro equipo (Paso 4) y agregado en nuestro cliente git GITHUB o GITLAB (Paso 5), solo nos falta verificarlo en nuestra terminal ejecutando el siguiente comando.

    bash
    $ ssh -T git@github.com
    # or
    $ ssh -T git@gitlab.com

    Conclusiones

    Es posible que en algunas companias o startups utilizen su propio repositorio basado en GITLAB, tb podemos utilizarlo cambiando el hostaname por la nueva url o IP

    bash
    # En el archivo ~/.ssh/config
    # Gitlab Custom Domainaccount
    Host mycompany.com or IP
    HostName mycompany.com or IP
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/gitlab_me

    Y para probarlo tb cambiaria un poco.

    bash
    $ ssh -T git@mycompany.com
    or
    $ ssh -T git@xxx.xxx.xxx.xxx