Cómo crear una llave SSH en MacOS

Aprende a configurar una llave SSH para gestionar servidores o servicios que requiera de este tipo de llaves de forma segura.
Cómo crear una llave SSH en MacOS
Foto de Luca Bravo / Unsplash
Esta entrada es una versión actualizada de una publicación realizada anteriormente.

Como desarrolladores, a veces es necesario contar con una llave SSH de forma local que sirva como conexión segura con un servidor web por medio de SSH, ya que es la opción más fiable para establecer conexión directa con un servidor sin necesidad de usar usuarios y contraseñas que pueden ser potencialmente vulnerables.

En esta guía te mostraré como crear una llave SSH de forma local en MacOS específicamente. Esta llave podrá ser usada en muchos servicios, incluyendo GitHub, GitLab, DigitalOcean, AWS, entre muchos otros servicios que permitan el uso de llaves SSH. Pero antes de empezar, hay qué saber qué es una llave SSH.

¿Qué es una llave SSH?

Según la página de Siteground, “Una clave SSH consiste en una clave privada y una pública que se usan en un método de autenticación conocido como clave pública de autenticación SSH. En este método de autenticación, uno de los archivos (conocido como clave privada) normalmente se ubica del lado del cliente y la otra (conocida como clave pública) se almacena en le servidor. No hay 2 pares de claves SHH iguales.”. Es decir, habrán dos llaves: Una llave pública y una privada.

La llave pública es la que facilitaremos a los servicios web, y la llave privada es la NUNCA, Y ME REFIERO A QUE NUNCAcompartiremos con otras personas o páginas, ya que es la encargada de desencriptar la información.

Ahora sí, vamos a ver cómo se crea la llave SSH de forma local.

Cómo crear la llave SSH

Para empezar, en este tutorial crearé la llave SSH usando Hyper, una terminal para MacOS bastante potente, sencilla y con un buen aspecto visual. También puedes usar la terminal que viene por defecto en MacOS, o Warp, otra excelente alternativa.

Abrimos la terminal,  y una vez la app esté en primer plano veremos que estámos en el root que por defecto. Puedes cambiar la locación si deseas, o crear un directorio dentro de la carpeta que por defecto está en la terminal. Para efectos prácticos dejaré por defecto la carpeta que tiene la terminal, que es el home de mi MacOS.

ahora tendremos que escribir las siguientes lineas:

ssh-keygen -t ed25519 -C "tu@email.com"

Donde ed25519 es el algoritmo de la llave pública. Este es el algoritmo que GitHub usa, por ejemplo, para validar las claves públicas y privadas. 

Recuerda reemplazar “tu@email.com” con tu correo electrónico, el cual también está asociado al servidor/servicio. Es importante que el correo siempre coincida y no se usen correos diferentes.

En caso de que el servidor o servicio que pretendas no sea compatible con ed25519, puedes usar el algoritmo RSA de 4096 bytes:

ssh-keygen -t rsa -b 4096 -C "tu@email.com"

Presionas ENTER e inmediatamente te mostrará un aviso en donde te indicará la ruta que serán guardadas las llaves.

Presionas ENTER nuevamente y se generará la carpeta. Acto seguido te pedirá una passphrase o contraseña. Esta es muy recomendable ponerla para que genere un archivo con una capa adicional de seguridad.

Te pedirá confirmar la passphrase para poder continuar. Acto seguido te generará las llaves que estarán almacenadas en la carpeta seleccionada en los primeros pasos, y de hecho en la misma pantalla te mostrará la ruta donde quedaron guardados los archivos. También te mostrará la key randomart para confirmar que el proceso de generación fue exitoso y se pueda validar las llaves.

A partir de aquí puedes borrar la terminal con el comando CONTROL + L y así poder continuar sin tanta información en pantalla. Como último paso ahora debes agregar la llave SSH al agente, o lo que en efectos prácticos es, activar el servidor de llaves SSH local con el siguiente comando:

eval $(ssh-agent -s)

Te arrojará como resultado Agent pid XXXXX (que es el ID de proceso en la terminal)

Ahora debemos crear un archivo config donde se agregarán los datos de la llave ssh que creamos, y en este paso es importante que tengas en cuentas las mayúsculas y minúsculas. Para crear el archivo sigue estos pasos:

  1. En la terminal debes cambiar la ruta. Esta debe dirigir a la carpeta .ssh que es donde tenemos las llaves. Para ello usa el comando cd ~/.ssh
  2. una vez se haya cambiado de directorio, usa el comando vim config para crear el archivo. Ten presente que el archivo no tiene extensión. Presionas la tecla i para entrar en modo de insertar.
  3. Dentro del editor VIM escribirás lo siguiente:
Host *
        AddKeysToAgent yes
        UseKeychain yes
        IdentityFile ~/.ssh/id_ed25519
  1. Presionas la tecla esc para salir del modo insertar, seguido de SHIFT + Z dos veces para guardar los cambios. Con esto el archivo config ha sido creado y configurado.
  2. Como último paso debes agregar tu llave SSH al servidor SSH de llaves de tu computadora usando el comando ssh-add -K ~/.ssh/id_ed25519 en la terminal. Al proceder con este comando, te pedirá el passphrase de la llave, el cuál debes ingresar.

¡Genial! ¡Si llegaste hasta este punto significa que configuraste correctamente tus llaves SSH! 🎉

Ahora solo resta ir a la carpeta donde quedaron los archivos, para esto abres el Finder y vas hasta la carpeta con el icono de casa, que normalmente tiene tu nombre de usuario en MacOS. 

La falsa idolatría a los servicios de streaming ilegales
No nos dejemos engañar por servicios mediocres que fomentan la ilegalidad.

Si no puedes visualizarla debes habilitarla yendo al menú superior en la parte izquierda con el Finder en primer plano y seleccionar Finder > Preferencias y en la pestaña “barra lateral” marcar la opción que tiene tu usuario de MacOS.

Ya accediendo a la carpeta de tu usuario en MacOS (en mi caso es julianrodriguez) vas a presionar la siguiente combinación de teclas: COMMAND + SHIFT + . para que se revelen las carpetas ocultas. Te aparecerá la carpeta .ssh que es donde están tus llaves pública y privada. habrán dos archivos: id_ed25519 y id_ed25519.pub. El primer archivo es la llave privada y el segundo archivo (que tiene la extensión .pub) es la llave publica.

Cómo ver la llave pública

Ya tenemos nuestras llaves, pero ahora queremos, por ejemplo, agregar la llave pública a nuestra cuenta de GitHub pero nos pide texto, no nos da la opción de subir el archivo. 

Para ver la clave pública solo basta con abrir el archivo id_25519.pub con algún editor de texto como TextEdit (que viene por defecto con MacOS), Visual Studio CodeAtomSublime text 4, entre muchos otros. Lo importante es poder abrirlo en un editor de texto. En mi caso usaré Visual Studio Code.

Seleccionas y copias el código, para pegarlo en el campo correspondiente dentro de las opciones de GitHub. Aclaro que es un ejemplo el de GitHub, pero aplica para muchos otros servicios.

Espero que este tutorial te sea de gran utilidad para configurar llaves SSH. Si tienes alguna duda o aporte, puedes dejarlos en la caja de comentarios.

Suscríbete al newsletter

Sin correo no deseado, sin compartir con terceros. Solo tú y yo.

Discusión de miembros