Cómo crear una llave SSH para trabajar con Github y Gitlab usando PuTTYGen en Windows 10

Cómo crear una llave SSH para trabajar con Github y Gitlab usando PuTTYGen en Windows 10

Cuando trabajas con Git, ya sea con Github o Gitlab, a menudo necesitarás autenticarte con tu nombre de usuario y contraseña. Las Llaves SSH son una alternativa para identificarse sin proporcionar las credenciales mencionadas cada vez que interactúas con tus repositorios. Solo necesitarás compartir tu clave pública con el servicio y la clave privada permanecerá almacenada en tu computadora, por lo que cuando las claves coincidan, tendrás acceso completo a tus cosas.

Por ejemplo, si intentas clonar uno de tus repositorios a través de SSH de esta manera:

git clone git@gitlab.com:username-or-organization/repository.git

En Windows, si no tienes ninguna clave SSH configurada correctamente, aparecerá el siguiente mensaje:

Cloning into 'your-git-repo'...
git@gitlab.com: Permission denied (publickey,keyboard-interactive).
fatal: Could not read from remote repository.      

Please make sure you have the correct access rights
and the repository exists.

En este artículo, te explicaré cómo generar fácilmente tu propia llave SSH para identificar tu dispositivo.

1. Instalar PuTTYGen

Lo primero que debes hacer para trabajar con la autenticación SSH con tus repositorios es instalar PuTTYGen en el sistema. Esta aplicación viene incluida en la configuración de instalación de PuTTY en el sitio web oficial aquí. Sin embargo, también puede descargar el archivo puttygen.exe si no deseas el paquete completo de PuTTy.

PuTTYGen es una utilidad de generación de claves RSA y DSA que se utilizará para crear nuestra clave SSH en el entorno Windows.

2. Genera tu clave SSH

Inicie el binario de PuttyGen y comienza a crear la clave SSH haciendo clic en "Generar", después de eso, se te pedirá que muevas el mouse sobre el espacio en blanco para generar algo de aleatoriedad en tu clave:

PuTTY Key Generator, Generate SSH in Windows

Luego de mover el mouse en este punto, se generará la clave SSH y deberás completar los siguientes campos:

  • Comentario de clave: el nombre que se usará para esta clave, generalmente el nombre de la computadora en la que estás trabajando en este momento.
  • Frase de contraseña de la clave: esta será la contraseña que deberás proporcionar para desbloquear la clave cada vez que la necesite.

SSH Key fill password and comment

Ahora que tenemos la contraseña de la clave SSH y un nombre para ella, ahora puedes proceder a guardarla en los formatos requeridos para Windows.

3. Crea la carpeta .ssh en tu directorio de usuario

Crea la carpeta .ssh en el directorio del usuario actual. Por ejemplo, en mi computadora, se encuentra en C:/Users/sdkca. Así que crea la carpeta .ssh allí (puedes obtener el directorio con la variable de entorno %USERPROFILE%):

Windows .SSH directory location

Almacenarás todos los archivos creados en el directorio mencionado.

4. Almacena la clave privada PuTTY (archivo PPK)

El primer archivo a generar a partir de nuestra clave SSH ahora generada es el archivo con extensión .ppk que puedes generar haciendo clic en "Guardar clave privada":

Puttygen ppk file

Puedes proporcionar un nombre personalizado, en nuestro caso usaremos el mismo nombre que el comentario "ryzen93950x.ppk" y se almacenará en el directorio .ssh creado en el paso #3. El contenido del archivo .ppk se parece a esto:

PuTTY-User-Key-File-2: ssh-rsa
Encryption: aes256-cbc
Comment: Ryzen 9 3950x
Public-Lines: 6
AAAAB3NzaC1yc2EAAAABJQAAAQEAhDo/PTt7Ag2q5sAeE3zKfeGGedMVKK9q8BsQ
aYCES7HiE3wzTEp+jPAXDZuQmbhozZQM2whsQuqPmcqg+vkTS86eFkTVjjEeSyB0
F1pWGq4jg/mvbZ0jSjlM5mjbY9cwPpog6HleaCDovNkcapdPm64+FN0F9it5hwY1
sdzdSsqfxqzt8JlcwB8zKw71/ThE9fynQNar+utL2LrPPWS2bR4ZlI1WlQSWAkd2
9z3vk78zxRyuL5wdQf9j7Ay42j7bwkTcjCucC0T0iDeK+KoKyMysvbQFp4SLYXQq
xsPzU/BkEZmnqLxNzp6lShT6W1PcfNeVIH1DY1BsqtghaddHlQ==
Private-Lines: 14
ksW4kvFIMD4OqwgDYbEkhiB0l1uNsfj2uXw/lch/mHmaUSS08+2RHojc4GNDD2VG
....
.....

5. Almacena la llave pública OpenSSH para las claves autorizadas (archivo id_rsa.pub)

Ahora necesitas crear el archivo id_rsa.pub que contendrá la cadena en el medio de la aplicación PuTTYGen (clave pública). La cadena se utiliza en el archivo Authorized_keys de los servidores para que puedas acceder a ellos:

PuTTY OpenSSH Public Key

Copie el contenido y péguelo en el archivo id_rsa.pub mencionado en el directorio .ssh creado en el paso 3. El contenido del archivo se verá así:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAhDo/PTt7Ag2q5sAeE3zKfeGGedMVKK9q8BsQaYCES7HiE3wzTEp+jPAXDZuQmbhozZQM2whsQuqPmcqg+vkTS86eFkTVjjEeSyB0F1pWGq4jg/mvbZ0jSjlM5mjbY9cwPpog6HleaCDovTROLOLOLOLO-DONTUSETHISKEY-USEYOUROWNKEYJlcwB8zKw71/ThE9fynQNar+utL2LrPPWS2bR4ZlI1WlQSWAkd29z3vk78zxRyuL5wdQf9j7Ay42j7bwkTcjCucC0T0iDeK+KoKyMysvbQFp4SLYXQqxsPzU/BkEZmnqLxNzp6lShT6W1PcfNeVIH1DY1BsqtghaddHlQ== Ryzen 9 3950x

6. Almacena la clave OpenSSH (archivo id_rsa)

Finalmente, el tercer archivo será tu archivo de identidad que será tu clave SSH en formato Open SSH. Deberás convertir tu llave a este formato, ya que es el que necesita en herramientas como Github y Gitlab. Puedes hacer esto fácilmente haciendo clic en la pestaña Conversiones de PuTTYGen y luego haciendo clic en Exportar clave OpenSSH (forzar nuevo formato de archivo) :

Puttygen Export OpenSSH Key

Nota: si no usas el nuevo formato de archivo, funcionará de todos modos, sin embargo, siempre encontrarás la advertencia "cargar clave pública" /c/Users/USERNAME/.ssh/id_rsa ": formato no válido".

Esto te indicará dónde guardar el archivo, utiliza id_rsa como nombre y almacenarlo en el directorio .ssh creado en el paso 3. El contenido de este archivo debería verse así:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,920A7C839CE3CABE

qWuTR1ARsILMzEGwhmr5SYFdu/MxsLKA3XTLy1dO4RYsvLqZOmloRvtZgy9VSNpg
...............................
-----END RSA PRIVATE KEY-----

Después de seguir todos los pasos anteriores, terminarás con 3 archivos en el directorio .ssh:

.SSH Key directory Windows

7. Registra la clave SSH en Github y Gitlab

Como paso final, debes registrar tu llave pública OpenSSH en la plataforma de tu elección en tus claves SSH:

Gitlab

Inicia sesión en Gitlab y abre la configuración de usuario. En el menú del lado izquierdo, elije la opción Llaves SSH y registra el contenido de tu archivo id_rsa.pub:

Gitlab SSH Keys

Github

Inicia sesión en Github y abre tu configuración personal de usuario a través del menú desplegable de la parte superior derecha. Selecciona las llaves SSH y GPG y registra tu clave:

Github SSH Keys

8. Uso de la autenticación SSH

Ahora que tienes tus claves registradas, puedes clonar tus repositorios y realizar cambios en tus repositorios:

git clone git@gitlab.com:username/repository-name.git

Que te diviertas ❤️!

Esto podria interesarte

Conviertete en un programador más sociable