Cómo configurar la autenticación SSH en Plesk para acceso seguro
¿Por qué es importante asegurar el acceso SSH en Plesk?
El acceso SSH (Secure Shell) es la puerta de entrada principal a la línea de comandos de tu servidor. Si no lo configuras correctamente, es como dejar la llave puesta en la cerradura de tu casa. Un atacante que adivine tu contraseña o explote una vulnerabilidad podría obtener control total sobre tu sitio web, tus datos y los de tus clientes.
Configurar la autenticación SSH en Plesk no solo es una buena práctica, es una necesidad básica de ciberseguridad. En este artículo, te guiaré paso a paso para que configures un acceso seguro, incluso si nunca has tocado un archivo de configuración en tu vida. Hablaremos de claves públicas, desactivación de contraseñas débiles y las mejores opciones que ofrece Plesk para mantener tu servidor blindado.
Conceptos básicos: ¿Qué es la autenticación SSH?
Antes de entrar en materia, vamos a aclarar dos conceptos que son la base de todo esto.
Autenticación por contraseña vs. Autenticación por clave pública
Cuando te conectas a un servidor por SSH, tradicionalmente usas un usuario y una contraseña. Esto es como usar una llave normal para abrir una puerta. Si alguien roba la copia de la llave (o adivina la contraseña), tiene acceso.
La autenticación por clave pública funciona de otra manera. Usas un par de llaves criptográficas: una llave privada (que guardas en tu ordenador personal, como un secreto) y una llave pública (que instalas en el servidor). Cuando intentas conectarte, el servidor te envía un desafío que solo puedes resolver si tienes la llave privada correspondiente. Es como tener una cerradura que solo se abre con una llave digital única, y esa llave nunca viaja por internet.
Para un acceso seguro en Plesk, la autenticación por clave pública es infinitamente superior. No se puede adivinar, no se puede interceptar fácilmente y puedes revocarla en cualquier momento sin cambiar tu contraseña.
¿Qué es Plesk y cómo gestiona el SSH?
Plesk es un panel de control de hosting que te permite gestionar sitios web, correos, bases de datos y, por supuesto, el acceso SSH. No necesitas ser un experto en Linux para configurarlo. Plesk te ofrece una interfaz gráfica para gestionar las claves de los usuarios, aunque a veces necesitaremos tocar un poco la terminal para ajustes más finos.
Requisitos previos antes de empezar
Para configurar la autenticación SSH en Plesk, necesitas lo siguiente:
- Acceso de administrador a Plesk: Debes poder iniciar sesión en el panel como
admino un usuario con permisos de root. - Acceso por SSH actual: Necesitas una forma de conectarte al servidor por SSH (aunque sea con contraseña) para ejecutar algunos comandos iniciales.
- Un cliente SSH: En Windows puedes usar PuTTY o la terminal integrada de Windows 10/11. En Mac o Linux, simplemente abre la Terminal.
- Generador de claves: La mayoría de los clientes SSH incluyen una herramienta para generar pares de llaves. PuTTY tiene
PuTTYgen, y en Linux/Mac usamosssh-keygen.
Paso 1: Generar tu par de llaves SSH
Este es el primer paso y el más importante. Necesitas crear tu llave privada y pública en tu ordenador local.
En Windows con PuTTYgen
- Descarga e instala PuTTY desde su sitio oficial.
- Abre
PuTTYgen. - En la parte inferior, selecciona "RSA" y asegúrate de que el número de bits sea 2048 o más (4096 es más seguro).
- Haz clic en "Generate" y mueve el ratón sobre la ventana para generar aleatoriedad.
- Una vez generada, guarda la llave pública en un archivo de texto (por ejemplo,
mi_llave.pub). - Guarda la llave privada con una contraseña (passphrase). Esto es crucial. Si alguien roba tu archivo de llave privada, no podrá usarlo sin la passphrase.
En Linux o Mac
Abre la terminal y ejecuta:
ssh-keygen -t rsa -b 4096 -C "tu_correo@ejemplo.com"
Te preguntará dónde guardar el archivo (por defecto ~/.ssh/id_rsa). Pulsa Enter. Luego te pedirá una passphrase. Pon una contraseña larga y segura.
Esto creará dos archivos:
~/.ssh/id_rsa(tu llave privada, ¡nunca la compartas!)~/.ssh/id_rsa.pub(tu llave pública, esta es la que irá al servidor)
Paso 2: Acceder a Plesk y localizar la gestión de usuarios SSH
Ahora necesitamos instalar esa llave pública en el servidor.
- Inicia sesión en tu panel de Plesk como administrador.
- Ve a "Usuarios" o "Acceso SSH" (dependiendo de la versión, puede estar en la sección "Herramientas y utilidades" o en el menú de la izquierda).
- Busca el usuario para el cual quieres configurar el acceso SSH. Normalmente, el usuario principal del sistema se llama
rooto el nombre de tu cuenta de hosting.
[TIP] Si no encuentras la opción de SSH directamente, busca en "Configuración del servidor" o "Herramientas y utilidades". En versiones recientes de Plesk, está en "Usuarios" > "Usuarios del sistema".
Paso 3: Añadir tu llave pública en Plesk
Hay dos formas de hacer esto: desde la interfaz de Plesk o directamente desde la terminal.
Opción A: Desde la interfaz de Plesk (la más fácil)
- En la página del usuario SSH, busca un botón que diga "Añadir llave pública" o "Importar llave".
- Pega el contenido de tu archivo
.puben el campo de texto. Asegúrate de copiar toda la línea, que empieza conssh-rsa AAAA.... - Guarda los cambios.
Opción B: Desde la terminal (si Plesk no te deja)
Conéctate a tu servidor por SSH (con tu contraseña actual) y ejecuta:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "tu_llave_publica_aqui" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Reemplaza tu_llave_publica_aqui con el contenido de tu archivo .pub. Esto hace lo mismo que la interfaz, pero de forma manual.
[WARNING] Nunca guardes tu llave privada en el servidor. La llave privada solo debe vivir en tu ordenador personal o en un gestor de contraseñas seguro.
Paso 4: Probar la conexión con tu llave
Antes de desactivar las contraseñas (que es el siguiente paso), asegúrate de que todo funciona.
- Desde tu ordenador local, intenta conectarte:
ssh usuario@tu-servidor.com
Si usas PuTTY, introduce la IP del servidor y en la sección "Connection > SSH > Auth" selecciona tu archivo de llave privada.
- Si todo está bien, no te pedirá la contraseña del servidor, sino la passphrase de tu llave privada (la que pusiste al generarla).
[INFO] Si te pide la contraseña del servidor, es que la llave no se ha instalado correctamente. Repasa los pasos anteriores o revisa los permisos de los archivos en el servidor.
Paso 5: Desactivar la autenticación por contraseña (el paso crítico)
Este es el paso que realmente asegura tu servidor. Vamos a decirle al servidor que solo acepte conexiones con llave pública.
- Conéctate al servidor por SSH (ahora ya con tu llave).
- Abre el archivo de configuración de SSH:
sudo nano /etc/ssh/sshd_config
- Busca las siguientes líneas y cámbialas o añádelas (si no existen):
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
- Guarda el archivo (en nano:
Ctrl+O, Enter,Ctrl+X). - Reinicia el servicio SSH para aplicar los cambios:
sudo systemctl restart sshd
[WARNING] ¡CUIDADO! Si haces esto y tu llave no está bien configurada, te quedarás fuera del servidor para siempre (o hasta que uses el acceso por consola del proveedor). Asegúrate de haber probado la conexión con llave en el paso anterior y de tener una sesión SSH abierta mientras cambias esta configuración. Si algo sale mal, puedes revertir el cambio desde esa sesión abierta.
Gestión avanzada: Usuarios SSH específicos en Plesk
Plesk te permite crear usuarios SSH adicionales para diferentes clientes o proyectos. Esto es ideal para no dar acceso root a todo el mundo.
- En Plesk, ve a "Usuarios" > "Añadir usuario".
- Selecciona el tipo de acceso: "Acceso SSH".
- Define un shell como
/bin/bash(si quieren acceso completo) o/bin/rbash(si quieres restringir comandos). - Puedes asignarles una carpeta específica (chroot) para que solo vean su directorio.
Cada usuario tendrá su propio par de llaves si así lo deseas. Es una buena práctica que cada persona tenga su propia llave, así puedes revocar el acceso de uno sin afectar a los demás.
Preguntas frecuentes (FAQ) sobre SSH en Plesk
¿Qué hago si olvidé mi passphrase de la llave privada?
No hay forma de recuperarla. La passphrase es la que protege tu llave. Si la olvidas, tendrás que generar un nuevo par de llaves y reinstalar la pública en el servidor. Aprovecha para usar un gestor de contraseñas.
¿Puedo usar la misma llave para varios servidores?
Sí, puedes instalar la misma llave pública en varios servidores. Sin embargo, si uno de ellos se ve comprometido, deberías revocar y reemplazar la llave en todos. Es más seguro usar llaves diferentes por servidor.
¿Qué es el puerto SSH por defecto y debo cambiarlo?
El puerto por defecto es el 22. Cambiarlo (por ejemplo, al 2222) añade una capa de "seguridad por oscuridad", pero no es imprescindible si ya has desactivado las contraseñas. Muchos bots escanean el puerto 22, pero con la autenticación por llave, no podrán entrar. Si quieres cambiarlo, edita la línea Port 22 en /etc/ssh/sshd_config.
¿Cómo revoco el acceso SSH de un usuario?
En Plesk, ve al usuario, edita su perfil y cambia el acceso a "No permitir acceso SSH". También puedes eliminar su llave pública del archivo authorized_keys si quieres que sea inmediato.
¿Qué pasa si quiero usar FTP en lugar de SSH?
FTP es inseguro por diseño (envía contraseñas en texto plano). Te recomiendo usar SFTP (que va sobre SSH) o FTPS. Con SFTP, usas las mismas llaves que ya configuramos. Para activarlo en Plesk, asegúrate de que el servicio vsftpd o proftpd esté configurado para usar SFTP.
¿Puedo configurar SSH en Syspanel?
Syspanel (antes conocido como HestiaCP) también permite configurar SSH, aunque la interfaz es diferente. El acceso a su panel se realiza a través del puerto 2106. Los pasos de generación de llaves y edición de sshd_config son idénticos, ya que ambos gestionan el mismo sistema Linux subyacente. La única diferencia es que en Syspanel la gestión de usuarios SSH suele ser más manual.
Buenas prácticas adicionales de seguridad
Configurar la autenticación por llave es un gran paso, pero no el único. Aquí tienes una lista de cosas que puedes hacer para blindar tu servidor:
- Mantén tu sistema actualizado: Plesk y el sistema operativo deben estar siempre al día con los últimos parches de seguridad.
- Usa un firewall: Configura
fail2bano el firewall de Plesk para limitar los intentos de conexión SSH. Esto bloquea automáticamente IPs que intentan entrar repetidamente. - Cambia el puerto SSH: Aunque no es esencial, reduce el ruido en los logs.
- Desactiva el acceso root directo: En
sshd_config, cambiaPermitRootLogin noy usa un usuario con permisos de sudo. Así, cualquier intento de acceso directo como root es rechazado. - Monitorea los logs: Revisa periódicamente
/var/log/auth.logpara ver si hay intentos de acceso sospechosos.
Conclusión
Configurar la autenticación SSH en Plesk para un acceso seguro no es complicado si sigues los pasos correctos. La clave está en usar llaves públicas en lugar de contraseñas, y desactivar estas últimas una vez que hayas verificado que todo funciona.
Recuerda: la seguridad no es un destino, es un proceso continuo. Empieza con la autenticación por llave, añade un firewall, mantén todo actualizado y estarás muy por delante de la mayoría de administradores de servidores.
Si has llegado hasta aquí, ya tienes un servidor mucho más seguro. Te animo a que pruebes la conexión con tu nueva llave y disfrutes de la tranquilidad de saber que tu acceso SSH es robusto y confiable.
[INFO] Si encuentras algún problema durante el proceso, no dudes en consultar la documentación oficial de Plesk o contactar con tu proveedor de hosting. La seguridad de tu servidor es una inversión que vale la pena.
