Crear llaves SSH

  • Por
Las llaves SSH nos permiten conectar de manera más segura con servidores remotos por línea de comandos. Explicamos el proceso para crear llaves SSH en local y usarlas al hacer login en servidores remotos.

El proceso de creación de llaves es bastante sencillo en Linux y un poco más farragoso en Windows, pues se tiene que usar un software en particular. De todos modos, es bastante rápido. Vamos a resumirlo con algunas notas extra para poder aclarar posibles dudas.

Para conocimiento general, la llave SSH está compuesta por dos ficheros, uno con la llave pública y otro con la llave privada. La llave pública es la que tenemos que usar cuando sea necesario, colocándola en el lugar adecuado cuando se solicite. Sin embargo, la llave privada es algo que debe quedar a buen recaudo y tener cuidado de que no sea accesible por otras personas. Llave pública y privada tienen el mismo nombre de archivo, aunque la llave pública tendrá extensión ".pub", por lo que la podremos distinguir fácilmente.

Una llave SSH se puede usar varias veces, de modo que podrías configurarlas para el acceso a diversos servidores. Tampoco hay problema por crear varias llaves SSH en tu sistema si fuera necesario. Cada una tendría ese juego de par "llave pública / llave privada".

Crear la llave SSH en Linux / Mac

Para hacer esta tarea usamos un comando de sistema: ssh-keygen. Este comando se encarga del proceso de creación de los archivos de la llave. Al ejecutarlo sin parámetros crea una llave de tipo "RSA".

ssh-keygen

Podemos especificar el tipo de la llave con el parámetro -t. De modo que aquí estaríamos creando también una llave RSA.

ssh-keygen -t rsa

Podemos especificar el número de bits en la clave que se va a generar. Para llaves "rsa" el valor predeterminado es de 2048 bit, que es suficiente en la mayoría de los casos. El valor mínimo sería 1024 bits. Por medio de la opción -b lo podemos configurar. Esto creará una llave de 4096 bit:

ssh-keygen -t rsa -b 4096

Como puedes ver en las anteriores imágenes, una vez iniciado este comando nos va a solicitar dos cosas:

  • La localización donde almacenar la clave y el nombre del archivo.
  • La clave para poder usar esta llave ssh.

Ruta y nombre del archivo para almacenar la llave

Esta parte la puedes configurar a tu gusto. Realmente, cuando se arranca el comando ssh-keygen ya te sugiere una carpeta donde se suelen almacenar las llaves ssh y un nombre de archivo. En la mayoría de los casos es solamente aceptar la propuesta.

Nota: La carpeta donde se guardan las llaves se llama ".ssh" y por tanto es una carpeta oculta, por comenzar por ".". Como puedes observar la carpeta .ssh la sitúan de manera predeterminada en la carpeta de tu usuario.

Generalmente aceptarás tanto la carpeta como el nombre del archivo de la llave ssh. Pero de todos modos lo puedes variar si lo deseas. Solamente acuérdate del nombre de tu llave a la hora de configurar los sistemas, o a la hora de usarla para loguearte en el servidor remoto.

La clave asociada a la llave

La llave ssh se puede asociar a una clave creada por ti mismo, de modo que cuando alguien use la llave ssh tendrá que indicar además la clave asociada.

Esta clave es interesante porque le agrega un nivel extra de seguridad a tu llave SSH, de modo que si alguien la consigue, seguiría sin poder usar la llave si desconoce tu clave. Si no pones clave, la dejas en blanco, simplemente no te preguntará nada cuando se vaya a usar la llave ssh.

En resumen, poner clave a esta llave es una decisión tuya. Solo que si te decides por crear esa clave, guárdala bien para que no se te pierda, porque entonces no podrías usar la llave SSH.

Usar la llave SSH

Para usar la llave simplemente tienes que localizar la carpeta donde se generó la llave y encontrar el archivo con el nombre de la llave que finaliza por .pub.

A la hora de crear ciertos servicios de alojamiento, o algunos servicios de Git, te solicitarán tu llave. Tendrás que abrir el .pub, copiar su contenido y pegarlo donde se te solicite.

Para el ejemplo de SSH, una vez configurada tu clave desde el panel de control de tu proveedor de alojamiento o proveedor cloud, tendrás que indicar el nombre de tu clave para poder hacer el login. Lo consigues con un comando como este:

ssh -i ~/.ssh/nombre_mi_clave user@255.255.0.1

Con el anterior comando usarás tu llave SSH llamada "nombre_mi_clave", que está en la carpeta "~/.ssh/", para conectarte a tu servidor con IP 255.255.0.1 y con el nombre de usuario "user".

Si configuraste una clave para esta llave, el terminal te solicitará que la introduzcas antes de proceder a realizar el login.

Crear la llave ssh desde Windows

Un programa popular para hacer SSH en Windows es Putty. Cuando lo instalas viene otro software que nos permite crear claves, llamado Putty Key Generator, bastante sencillo de usar.

Lo encuentras desde el botón de Wondows, buscando luego por Putty, como "PuTTYgen".

Ya dentro de PuTTYgen, para generar tu llave puedes configurar el tipo y seleccionar el número de bits en la parte de abajo. Generalmente será "RSA" y el valor predeterminado de bits es de 2048.

Luego tienes que pulsar el botón "Generate" para comenzar la generación de la clave.

En este momento te pedirá que muevas el puntero del ratón sobre la ventana de Puttygen para ir creando una secuencia aleatoria.

Una vez generada la clave te aparecerá la llave pública en la pantalla. Puedes copiar y pegar su contenido y llevártelo a cualquier sitio donde necesites configurar esta llave SSH. También puedes encontrar un botón para salvar tu llave pública en un archivo, en cualquier lugar de tu disco duro.

También tendrás que guardar tu llave privada. Hay otro botón justamente para ello. Simplemente acuérdate donde has dejado cada archivo. Con esto has terminado todo tu trabajo con PuttyGen.

Usar la llave privada

Para acceder a los sitios donde tengas configurada la llave pública generada en el paso anterior tienes que usar tu llave privada. Esto lo hacemos dentro de Putty, el programa que conecta por SSH.

En Putty, en la ventana de configuración es donde debes indicar la llave privada que vas a usar para conectar por SSH.

Nota: La ventana de configuración es la que te aparece al iniciar Putty. Inicialmente te permite colocar la IP del servidor al que te quieres conectar, o el nombre del dominio del servidor.

Para configurar nuestra clave tenemos que acceder a la configuración "Connection / SSH / Auth". Allí verás un botón que te permite buscar la llave privada del disco duro, para agregarla a tu inicio de sesión SSH.

Eso es todo! has podido crear tu llave SSH en local y usarla para el acceso a un servidor remoto. Esperamos que esta información te haya resultado de utilidad!