Cómo configurar claves SSH

Sobre las claves SSH

Secure Shell (más conocido como SSH) es un protocolo de red de cifrado que permite a los usuarios realizar de forma segura una serie de servicios de red en una red no segura. Las claves SSH proporcionan una forma más segura de iniciar sesión en un servidor con SSH que usar solo una contraseña. Si bien una contraseña se puede descifrar con un ataque de fuerza bruta, las claves SSH son casi imposibles de descifrar solo con la fuerza bruta.

La generación de un par de claves te proporciona dos cadenas largas de caracteres: una pública y una clave privada. Puedes colocar la clave pública en cualquier servidor y luego desbloquearla conectándote a ella con un cliente que ya tenga la clave privada. Cuando los dos coinciden, el sistema se desbloquea sin necesidad de una contraseña. Puedes aumentar la seguridad aún más protegiendo la clave privada con una frase de contraseña.

Dentro de algunos de los comandos que se encuentran en este tutorial, notará algunos valores resaltados. Estas son variables, y debes sustituirlas por tus propios valores

Paso uno: crear el par de claves RSA

El primer paso es crear el par de claves en la máquina cliente (es muy probable que solo sea tu computadora):

Paso dos: almacenar las claves y la contraseña

Una vez que hayas ingresado el comando Gen Key, verás algunas preguntas más:

Puedes presionar Enter aquí, guardando el archivo en la página de inicio del usuario (en este caso, mi ejemplo de usuario se llama demo).

Depende de ti si deseas utilizar una frase de contraseña. La introducción de una frase de contraseña tiene sus beneficios: la seguridad de una clave, sin importar qué tan cifrada esté, aún depende del hecho de que no sea visible para nadie más. En caso de que una clave privada protegida por contraseña esté en posesión de usuarios no autorizados, no podrán iniciar sesión en sus cuentas asociadas hasta que descubran la frase de contraseña, lo que le dará al usuario hackeado un tiempo extra. El único inconveniente, por supuesto, de tener una frase de contraseña, es tener que escribirla cada vez que se usa el par de claves.

Todo el proceso de generación de claves se ve así:

La clave pública ahora se encuentra en /home/demo/.ssh/id_rsa.pub. La clave privada (identificación) ahora se encuentra localizada en /home/demo/.ssh/id_rsa.

Paso tres: copiar la clave pública

Una vez que se genera el par de claves, es hora de colocar la clave pública en el servidor que queremos usar.

Puedes copiar la clave pública en el archivo authorized_keys de la nueva máquina con el comando ssh-copy-id. Asegúrate de reemplazar el nombre de usuario de ejemplo y la dirección IP a continuación.

Nota: Si eres un usuario de Mac, ssh-copy-id no está instalado en tu máquina. Sin embargo, puedes, instalarlo usando Homebrew.

Alternativamente, puedes pegar las claves usando SSH:

No importa el comando que elijas, puedes ver algo como lo siguiente:

Este mensaje nos ayuda a asegurarnos de que no hayamos agregado las claves adicionales que no esperabas.

Ahora puedes seguir adelante e iniciar sesión en tu perfil de usuario y no se te pedirá una contraseña. Sin embargo, si configuras una contraseña al crear tu clave SSH, se te pedirá que ingreses la contraseña en ese momento (y cada vez que inicies sesión en el futuro).

Paso cuatro opcional: deshabilitar la contraseña para el inicio de sesión root

Una vez que hayas copiado las claves SSH en tu servidor y te hayas asegurado de que puedas iniciar sesión solo con las claves SSH, puedes continuar y restringir el inicio de sesión de root para que solo se permita a través de las claves SSH.

Para hacer esto, abre el archivo de configuración SSH:

Dentro de ese archivo, tienes que encontrar la línea que incluye PermitRootLogin y modifícalo para asegurarte de que los usuarios solo puedan conectarse con tu clave SSH:

Guarda y cierra el archivo cuando hayas terminado.

Para poner en práctica estos cambios debes usar el siguiente comando: