Autenticación de clave pública SSH en Linux

Autenticación de clave pública SSH en Linux

Este tutorial explica cómo usar la autenticación de clave pública SSH en lugar del método de inicio de sesión de contraseña más utilizado.

Después de leer este tutorial, sabrá cómo configurar su acceso SSH utilizando la autenticación clave. Después de las instrucciones prácticas, puede encontrar información sobre el proceso de autenticación clave, ventajas y desventajas sobre la autenticación de contraseña.

Configuración de la autenticación de la tecla SSH en Linux

Para comenzar, debe generar claves públicas y privadas. Las claves privadas y públicas se generan simultáneamente por el mismo dispositivo, y luego se comparten con los dispositivos que desea permitir las conexiones entre.

En este ejemplo, generaremos claves de autenticación de un cliente utilizando el comando ssh-keygen, y luego enviaremos la clave pública al servidor para permitir conexiones entre ellos.

Para generar las claves, debe iniciar sesión como el usuario permitió conectarse. En este tutorial, el usuario creado tanto en servidor como en el cliente es Linuxhint.

Después de ejecutar el comando ssh-keygen, el proceso le pedirá en qué archivo desea guardar la tecla, presione ENTER para dejar la ubicación predeterminada (~/.SSH/ID_RSA).

También se le pedirá una frase de pases para cifrar su clave. Esto se recomienda, pero la mayoría de los dispositivos autenticados clave no lo usan. Puede escribir una frase de pases y presionar ENTER, o simplemente puede presionar ENTER, dejando el campo vacío para evitar cifrar su tecla.

Para generar claves públicas y privadas, ejecute el comando a continuación.

Nota: En el ejemplo a continuación, puede ver en mi caso que ya tenía autenticación clave, y el proceso me pregunta si quiero sobrescribir la clave anterior. Si no tuviera una clave anterior, puede ignorarla.

$ ssh-keygen

Como puede, ver que las teclas se generaron correctamente.

Como se explicó anteriormente, después de generar sus claves desde el cliente, debe enviar la clave pública al servidor al que desea poder conectarse. Para compartir la clave pública con el servidor, puede usar el comando ssh-copy-id seguido del nombre de usuario que desea conectarse, y la dirección IP del servidor como se muestra a continuación.

$ ssh-copy-id [email protected]

La clave se instaló correctamente en el servidor. Ahora, puede conectarse usando SSH seguido del nombre de usuario y la dirección IP del servidor como se muestra a continuación.

$ ssh [email protected]

En mi caso, escribí una frase de pases al generar claves. Por lo tanto, al intentar acceder a una clave, se me solicita que escriba la frase de pases. Si también escribió una frase de pases al generar teclas, llene el campo y presione Desbloquear para conectarse.

Como puede ver en la siguiente captura de pantalla, la conexión se estableció con éxito.

Desactivar la autenticación de contraseña

Ahora ha habilitado la autenticación de clave pública SSH en Linux, debe deshabilitar el método de autenticación de contraseña. Para lograrlo, debe editar el archivo de configuración SSH/etc/ssh/sshd_config.

Puede usar el siguiente comando para editar/etc/ssh/sshd_config usando el editor de texto nano.

$ sudo nano/etc/ssh/sshd_config

Encuentre la línea que contiene contraseña de autenticación Sí que se muestra en la captura de pantalla a continuación.

Editar la línea,

Contraseña Autenticación Sí

Cambiarlo a:

Contraseña Autenticación no

Guardar y salir del archivo. Si usó Nano para editar el archivo, puede presionar CTRL+X para salir de los cambios de guardado.

Para aplicar los cambios, debe reiniciar el servicio SSH. Para hacerlo, ejecute el comando a continuación.

$ sudo systemctl reiniciar ssh

El inicio de sesión de su contraseña está deshabilitado y puede conectarse utilizando la autenticación de clave.

Desactivar el inicio de sesión raíz

Deshabilitar el inicio de sesión raíz también es una excelente manera de aumentar la seguridad de su sistema. El usuario de la raíz es universal y vulnerable a los ataques de fuerza bruta. De esta manera, puede evitar que cualquier persona bruta forzue la raíz o que inicie sesión de forma remota con privilegios.

Puede deshabilitar el inicio de sesión root editando el mismo archivo/etc/ssh/sshd_config como se muestra a continuación.

$ nano/etc/ssh/sshd_config

Encuentra la línea que contiene Permitrootlogin Sí, se muestra a continuación.

Editar la siguiente línea:

Permitrootlogin si

Cambiarlo a:

Permitrootlogin no

Salir de los cambios de guardado presionando CTRL+X.

Reinicie el servicio SSH:

$ sudo systemctl reiniciar ssh

Su inicio de sesión raíz está deshabilitado.

Métodos de autenticación de contraseña vs clave

Como puede ver, el proceso de autenticación clave es fácil de implementar. Cuando inicia sesión en el servidor al que desea conectarse, su clave privada permanece segura en su sistema y no se envía al servidor. En cambio, el servidor envía su clave pública al cliente donde tiene lugar la autenticación.

Hay razones por las cuales algunos usuarios optan por la autenticación clave y otros para el inicio de sesión de contraseña.

Algunos usuarios elegirán un método de autenticación clave porque genera automáticamente claves que son más fuertes que las contraseñas hechas por humanos. Además, las claves privadas no se entregan al servidor. No son vulnerables a los ataques de hombre en el medio. Al usar la autenticación clave, solo los dispositivos con la clave privada pueden conectarse, aumentando la seguridad.

Por otro lado, algunos usuarios elegirán el inicio de sesión de contraseña porque pueden conectarse desde cualquier dispositivo. Las credenciales de contraseña también son más fáciles de distribuir si tiene muchos usuarios para administrar.

Conclusión

Como puede ver, aumentar la seguridad de su sistema reemplazando el inicio de sesión de la contraseña con la autenticación clave es un proceso muy fácil, incluidos algunos comandos para generar la clave y compartirla. Además, deshabilitar la autenticación de contraseña solo requiere reemplazar un sí con un NO en el archivo de configuración de SSH y reiniciar el servicio. Otros métodos para aumentar su seguridad SSH se pueden aprender en DISPLET SSH y Linux Tutoriales de autenticación de dos factores.

Espero que este tutorial explicar cómo usar la autenticación de clave pública SSH en Linux haya sido útil.