Cómo usar la autenticación de clave SSH

Cree un sistema automatizado más seguro Si es administrador de Linux, entonces está muy familiarizado con el comando ssh . ¿Por qué? Porque es el medio más popular para obtener acceso a un servidor Linux remoto.

Cree un sistema automatizado más seguro

Si es administrador de Linux, entonces está muy familiarizado con el comando ssh . ¿Por qué? Porque es el medio más popular para obtener acceso a un servidor Linux remoto. Fuera de la caja, Secure Shell (SSH) a menudo se considera bastante seguro. Sin embargo, si te tomas en serio tu seguridad, sabes que es una exageración leve. Sí, SSH es mucho mejor que utilizar la mayoría de los otros medios para iniciar sesión de forma remota en un servidor Linux. Si se usa sabiamente, se puede hacer aún más seguro. ¿Cómo? Con autenticación de clave SSH.

¿Qué es la autenticación de clave SSH?

Normalmente, cuando inicia sesión en un servidor remoto con SSH, lo hace utilizando una combinación de nombre de usuario/contraseña. Emita el comando:

 ssh olivia@192.168.1.221 

Se le solicitará la contraseña de usuario para Olivia. Ese es el método más utilizado para los inicios de sesión SSH. Sin embargo, el uso de una contraseña se limita a la longitud de la contraseña que puede recordar, o está dispuesto a escribir. Claro, puede hacer que el usuario Olivia establezca una contraseña que es increíblemente larga y complicada, pero ¿ese usuario querrá escribir esa contraseña cada vez que necesite iniciar sesión? Probablemente no. Con la autenticación de clave SSH, se utiliza una frase de contraseña cifrada que es mucho más larga de lo que es práctico con una contraseña estándar. Por lo tanto, la fuerza criptográfica encontrada en la autenticación de clave SSH va mucho más allá de lo que puede coincidir con una contraseña estándar.

Pero para usar la autenticación de clave SSH, debe configurarla. Afortunadamente, es increíblemente fácil de hacer.

Generando su clave SSH

Lo primero que debe hacer es generar una clave SSH. Esto es bastante facil. Abra una ventana de terminal en la máquina cliente que planea usar para iniciar sesión en su servidor y emita el comando:

 ssh-keygen 

Se le pedirá que ingrese un nombre de archivo para su clave recién generada. Para aceptar el valor predeterminado ( /home/USER/.ssh/id_rsa , donde USER es su nombre de usuario), simplemente presione la tecla Intro. Luego se le pedirá que escriba y verifique una frase de contraseña. Haga que esta frase de contraseña sea fuerte.

Cuando se completa el comando, su clave está lista para usar.

Copiar su clave al servidor

Ahora que tiene su clave lista, debe copiarse en el servidor en el que planea iniciar sesión, a través de ssh. Afortunadamente, hay una manera muy fácil de hacerlo. Vuelva a la ventana de terminal que utilizó para crear la clave SSH y emita el comando:

 ssh-copy-id USER @ SERVER_IP 

Donde USER es el nombre de usuario y SERVER_IP es la dirección IP del servidor en el que desea iniciar sesión. Se le solicitará la contraseña del USUARIO. Una vez que se autentique con éxito, la clave SSH se copiará y luego podrá iniciar sesión en el servidor de la forma habitual. Emita el comando (desde el cliente que utilizó para crear la clave SSH):

 ssh USER @ SERVER_IP 

Debido a que el cliente desde el que está iniciando sesión tiene la clave coincidente que ahora está en el servidor, iniciará sesión.
Repita este proceso en cada máquina cliente que necesite SSH en el servidor.

Bloqueándolo

En este punto, los usuarios pueden iniciar sesión en su servidor mediante contraseñas SSH estándar o autenticación de clave SSH. Para que esta configuración sea aún más segura, puede evitar el uso de la autenticación de contraseña modificando la configuración del daemon SSH. Para hacer eso, emita el comando:

 sudo nano/etc/ssh/sshd_config 

En ese archivo, busque la línea:

 #PasswordAuthentication yes 

Descomente (elimine el símbolo #) y cambie sí a no.

A continuación, busque la línea:

 #PubkeyAuthentication yes 

Descomenta esa línea.

Guarde y cierre el archivo (presione Ctrl + x) y responda sí. Reinicie el demonio SSH con el comando:

 sudo systemctl restart sshd 

Ahora, si intenta ingresar a SSH en ese servidor desde cualquier cliente que no contenga una clave SSH coincidente, se le negará el acceso.

¿Dónde se almacena la clave SSH?

Para aquellos que tienen curiosidad, inicie sesión en el servidor en el que copió sus claves. Emita el comando:

 menos ~/.ssh/optional_keys 

El resultado del comando anterior mostrará todas las claves que ha enviado desde los clientes (utilizando el comando ssh-copy-id). Si encuentra que desea revocar la autenticación de clave SSH de un cliente en particular, puede eliminar las líneas que corresponden con el nombre de host del cliente (el nombre de host es el último bit de información en la clave).

Rate article
labsfabs.com
Add a comment