Configurar la Autenticación Basada en Claves para SSH

Red Hat Enterprise LinuxBeginner
Practicar Ahora

Introducción

En este desafío, configurarás la autenticación basada en claves para SSH, que representa una alternativa mucho más segura que el uso tradicional de contraseñas. Generarás un par de claves pública y privada, autorizarás la clave pública en el servidor y configurarás el servicio SSH para permitir conexiones mediante dicha clave. Esto te permitirá iniciar sesión en el servidor SSH sin necesidad de introducir una contraseña, mejorando tanto la seguridad como la comodidad operativa.

Este es un Desafío (Challenge), a diferencia de un Laboratorio Guiado, aquí deberás intentar completar la tarea de forma independiente en lugar de seguir pasos de aprendizaje asistido. Los desafíos suelen tener una dificultad mayor. Si encuentras obstáculos, puedes consultar con Labby o revisar la solución. Los datos históricos muestran que este es un desafío de nivel principiante con una tasa de aprobación del 90%. Ha recibido una tasa de valoraciones positivas del 100% por parte de los estudiantes.

Generar un Par de Claves Pública y Privada

El primer paso consiste en crear un par de claves criptográficas. Este par se compone de una clave privada, que debes mantener bajo estricto secreto, y una clave pública, que colocarás en el servidor para autorizar el acceso.

Tareas

  • Genera un nuevo par de claves pública y privada RSA utilizando el comando ssh-keygen.

Requisitos

  • Cambia a la cuenta testuser antes de generar el par de claves.
  • Genera el par de claves como el usuario testuser.
  • Utiliza la ubicación de archivo predeterminada cuando se te solicite (/home/testuser/.ssh/id_rsa).
  • No establezcas una frase de paso (passphrase) para la clave privada (presiona Enter cuando se te pida la frase de paso).

Primeros Pasos

Primero, cambia a la cuenta testuser:

su - testuser
## Password: testuser123

Ejemplo

Después de generar el par de claves, puedes listar los archivos en el directorio ~/.ssh para ver tus nuevas claves.

$ ls -l ~/.ssh
total 8
-rw------- 1 testuser testuser 3401 Aug 19 03:49 id_rsa
-rw-r--r-- 1 testuser testuser  759 Aug 19 03:49 id_rsa.pub

El archivo id_rsa es tu clave privada y id_rsa.pub es tu clave pública.

✨ Revisar Solución y Practicar

Autorizar la Clave Pública y Configurar el Servidor SSH

Ahora que tienes un par de claves, debes configurar el servidor. Esto implica dos acciones principales: añadir tu clave pública a la lista de claves autorizadas y asegurar que el servicio SSH esté configurado para aceptar la autenticación basada en claves.

Requisitos Previos

Asegúrate de seguir con la sesión iniciada en la cuenta testuser. Si no es así, cambia a ella:

su - testuser
## Password: testuser123

Tareas

  • Copia tu clave pública al archivo ~/.ssh/authorized_keys.
  • Establece los permisos de archivo correctos para ~/.ssh/authorized_keys.
  • Modifica el archivo de configuración del servidor SSH (/etc/ssh/sshd_config) para habilitar la autenticación por clave pública.
  • Recarga el servicio SSH para aplicar los cambios de configuración.

Requisitos

  • El archivo ~/.ssh/authorized_keys debe ser creado y contener el contenido de tu clave pública (~/.ssh/id_rsa.pub).
  • Los permisos para ~/.ssh/authorized_keys deben ser 600.
  • En /etc/ssh/sshd_config, la opción PubkeyAuthentication debe estar sin comentar y establecida en yes.
  • La configuración del servicio SSH debe recargarse utilizando sudo pkill -HUP sshd.

Consejos

  • Puedes usar el comando cat con redirección de salida (>>) para añadir la clave al archivo authorized_keys.
  • Usa el comando chmod para establecer los permisos del archivo.
  • El usuario testuser tiene privilegios de sudo para editar /etc/ssh/sshd_config y para recargar el servicio sshd.
  • Dado que systemctl no está disponible en este entorno de contenedores, utiliza pkill para enviar una señal HUP al proceso sshd, lo que provocará que recargue su configuración.

Ejemplo

Tras completar estos pasos, deberías poder iniciar sesión en localhost usando tu clave SSH sin que se te solicite una contraseña.

$ ssh testuser@localhost "echo Login successful"
Login successful
✨ Revisar Solución y Practicar

Resumen

En este desafío, has aprendido a reforzar la seguridad de SSH mediante la configuración de la autenticación basada en claves. Generaste un par de claves pública y privada, autorizaste la clave pública en el servidor añadiéndola al archivo authorized_keys y modificaste la configuración del servidor SSH para habilitar este método de autenticación seguro. Al completar este desafío, has adquirido una habilidad fundamental para la gestión segura de sistemas remotos.