Aprende a configurar claves SSH en Ubuntu 18.04 de manera segura para acceder a tu servidor sin contraseña.
Configurar claves SSH en Ubuntu 18.04 es una excelente manera de asegurar tu servidor, evitando el uso de contraseñas y mejorando la seguridad de tus conexiones remotas. Las claves SSH permiten una autenticación más robusta y eficiente, ideal para administradores de servidores y desarrolladores. A continuación, te explicamos cómo configurarlas paso a paso.
Requisitos Previos
indice
Antes de comenzar, asegúrate de tener:
- Ubuntu 18.04 instalado en tu máquina local y en el servidor al que deseas conectarte.
- Acceso a la terminal en tu máquina local y en el servidor.
- Permisos de superusuario en el servidor, ya que necesitarás modificar configuraciones de seguridad.
Paso 1: Generar las Claves SSH en Ubuntu
El primer paso para configurar las claves SSH es generar un par de claves, que consta de una clave pública y una clave privada. Abre la terminal en tu máquina local y ejecuta el siguiente comando:
ssh-keygen -t rsa -b 4096
Este comando creará un par de claves RSA de 4096 bits. Durante el proceso, se te pedirá que elijas un nombre para el archivo de la clave. Si presionas Enter sin escribir nada, se utilizará el nombre por defecto (/home/usuario/.ssh/id_rsa
).
También se te pedirá que ingreses una frase de contraseña opcional para mayor seguridad. Si prefieres no usar una frase de contraseña, puedes dejar este campo vacío.
Paso 2: Copiar la Clave Pública al Servidor
Una vez que hayas generado las claves, el siguiente paso es transferir la clave pública a tu servidor Ubuntu. Esto se puede hacer fácilmente utilizando el siguiente comando:
ssh-copy-id usuario@direccion_ip_del_servidor
Reemplaza usuario
por el nombre de usuario en tu servidor y direccion_ip_del_servidor
por la IP del servidor. Si todo está correcto, el sistema te pedirá la contraseña del servidor una vez para copiar la clave pública al archivo de configuración de SSH del servidor.
Paso 3: Verificar la Conexión SSH
Ahora que la clave pública está en el servidor, puedes probar la conexión SSH sin necesidad de ingresar la contraseña. Simplemente ejecuta el siguiente comando desde tu máquina local:
ssh usuario@direccion_ip_del_servidor
Si la autenticación se realizó correctamente, deberías acceder a tu servidor sin que se te pida la contraseña.
Paso 4: Deshabilitar la Autenticación por Contraseña (Opcional)
Para mejorar aún más la seguridad, puedes deshabilitar la autenticación por contraseña en el servidor, de modo que solo se pueda acceder con claves SSH. Para hacerlo, edita el archivo de configuración de SSH en el servidor:
sudo nano /etc/ssh/sshd_config
Busca la línea #PasswordAuthentication yes
y cámbiala a:
PasswordAuthentication no
Luego, guarda el archivo y reinicia el servicio SSH para que los cambios surtan efecto:
sudo systemctl restart ssh
A partir de este momento, tu servidor solo aceptará conexiones SSH mediante claves y no con contraseñas, aumentando considerablemente la seguridad.
Paso 5: Configurar SSH en Ubuntu 20.04 o 22.04 (Si es necesario)
Si estás utilizando una versión más reciente de Ubuntu, como Ubuntu 20.04 o Ubuntu 22.04, los pasos para configurar SSH son muy similares. Asegúrate de instalar y activar el servicio SSH en estas versiones utilizando:
sudo apt install openssh-server
Y luego, habilita y arranca el servicio SSH:
sudo systemctl enable ssh
sudo systemctl start ssh
Consejos Finales
- Mantén las claves privadas seguras: Asegúrate de que tu clave privada (
id_rsa
) se mantenga segura en todo momento. Si alguien tiene acceso a ella, puede conectarse a tu servidor. - Configura un firewall: Es recomendable configurar un firewall en tu servidor, asegurando que solo las IPs autorizadas puedan acceder a tu puerto SSH.
- Usa autenticación de dos factores: Para mayor seguridad, puedes configurar un sistema de autenticación de dos factores (2FA) junto con SSH.
La configuración de claves SSH en Ubuntu 18.04 es una manera sencilla pero poderosa de asegurar tu servidor. Siguiendo estos pasos, tendrás un acceso remoto más seguro y eficiente, minimizando los riesgos de ataques por contraseñas débiles o comprometidas.