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.
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
testuserantes 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.
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_keysdebe ser creado y contener el contenido de tu clave pública (~/.ssh/id_rsa.pub). - Los permisos para
~/.ssh/authorized_keysdeben ser600. - En
/etc/ssh/sshd_config, la opciónPubkeyAuthenticationdebe estar sin comentar y establecida enyes. - La configuración del servicio SSH debe recargarse utilizando
sudo pkill -HUP sshd.
Consejos
- Puedes usar el comando
catcon redirección de salida (>>) para añadir la clave al archivoauthorized_keys. - Usa el comando
chmodpara establecer los permisos del archivo. - El usuario
testusertiene privilegios desudopara editar/etc/ssh/sshd_configy para recargar el serviciosshd. - Dado que
systemctlno está disponible en este entorno de contenedores, utilizapkillpara enviar una señalHUPal procesosshd, 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
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.



