🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo configurar la autenticación SSH con claves públicas en Syspanel

Actualizado el 28 de noviembre de 2025

¿Cansado de escribir tu contraseña cada vez que te conectas a tu servidor? ¿Te preocupa que alguien pueda adivinarla mediante ataques de fuerza bruta? Si es así, estás en el lugar correcto.

En esta guía extensa y detallada, vamos a explicar paso a paso cómo configurar la autenticación SSH con claves públicas en Syspanel. Este método no solo es más seguro, sino que también es mucho más cómodo, ya que te permitirá conectarte a tu servidor sin necesidad de introducir una contraseña cada vez.

A lo largo de este artículo, aprenderás qué es una clave pública SSH, por qué es crucial para la seguridad SSH Syspanel, cómo generarla en tu ordenador local y cómo instalarla en tu servidor. También te enseñaremos a deshabilitar la autenticación por contraseña para blindar tu sistema. Vamos a ello.


¿Qué es la autenticación SSH con claves públicas?

Antes de ensuciarnos las manos con comandos, es fundamental entender el concepto. La autenticación SSH con claves públicas es un método de verificación de identidad mucho más robusto que el uso de contraseñas tradicionales.

Funciona mediante un par de archivos criptográficos:

  • La clave privada: Es como la llave de tu casa. Debe permanecer siempre en tu ordenador local y nunca debe compartirse ni enviarse a nadie. Es la que demuestra que eres tú quien intenta acceder.
  • La clave pública: Es como la cerradura. Puedes copiarla y pegarla en cualquier servidor al que quieras acceder. No es un secreto; de hecho, se puede compartir libremente.

Cuando intentas conectarte, el servidor te envía un desafío cifrado que solo puede ser descifrado con tu clave privada. Si la clave privada coincide con la pública que tienes instalada en el servidor, ¡listo! Se establece la conexión sin necesidad de contraseña.

En el contexto de Syspanel, usar este método es la mejor práctica recomendada por cualquier administrador de sistemas. No solo protege tu servidor de ataques automatizados, sino que también facilita la gestión de múltiples usuarios y automatizaciones (como backups o despliegues).


Requisitos previos

Para llevar a cabo esta configuración, necesitarás:

  1. Acceso a tu servidor Syspanel: Debes tener acceso por SSH (normalmente en el puerto 22) con tu usuario y contraseña actuales. Si no sabes cómo hacerlo, consulta la documentación de tu proveedor de hosting.
  2. Un ordenador local: Puede ser tu PC con Windows, macOS o Linux. Desde aquí generarás las claves.
  3. Nociones básicas de terminal: No necesitas ser un hacker, solo saber copiar y pegar comandos.

Importante: En este artículo, cuando mencionemos Syspanel, nos referimos a la herramienta de gestión de hosting. Si tu servidor tiene el panel de control de Syspanel, recuerda que el acceso a la interfaz web se realiza a través del puerto 2106 (por ejemplo, https://tu-servidor.com:2106). Sin embargo, la configuración SSH que vamos a realizar se hace a través de la terminal, no del panel web.


Paso 1: Generar el par de claves SSH en tu ordenador local

Este es el primer paso y solo tienes que hacerlo una vez por ordenador. Vamos a generar una clave de tipo RSA de 4096 bits, que es la más recomendada actualmente.

En Windows (usando PowerShell o CMD)

  1. Abre PowerShell o el Símbolo del sistema.

  2. Escribe el siguiente comando y presiona Enter:

    ssh-keygen -t rsa -b 4096 -C "tu_correo@ejemplo.com"
    
    • -t rsa: Especifica el tipo de algoritmo (RSA).
    • -b 4096: Define la longitud de la clave (4096 bits es muy seguro).
    • -C: Es un comentario para identificar la clave (normalmente tu correo electrónico).
  3. El sistema te preguntará dónde guardar la clave. Por defecto, se guarda en C:\Users\TuUsuario\.ssh\id_rsa. Puedes presionar Enter para aceptar la ruta por defecto.

  4. Este paso es crucial: Te pedirá que introduzcas una frase de contraseña (passphrase). Es una contraseña extra que protege tu clave privada. Aunque es un paso adicional, te recomiendo encarecidamente que la pongas. Si alguien roba tu clave privada, sin esta frase no podrá usarla.

    • Escribe una frase larga y memorable.
    • Si no quieres ponerla (menos seguro), simplemente presiona Enter dos veces.
  5. Al finalizar, verás dos archivos en la carpeta .ssh: id_rsa (tu clave privada) e id_rsa.pub (tu clave pública).

En macOS o Linux

El proceso es idéntico. Abre la Terminal y ejecuta el mismo comando:

ssh-keygen -t rsa -b 4096 -C "tu_correo@ejemplo.com"

Sigue los mismos pasos que en Windows. Las claves se guardarán en /home/tu_usuario/.ssh/.

[INFO] La frase de contraseña (passphrase) no es la contraseña de tu servidor. Es una capa de seguridad local. Si la olvidas, no hay forma de recuperarla, así que guárdala en un lugar seguro.


Paso 2: Copiar la clave pública a tu servidor Syspanel

Ahora que tienes tu par de claves, necesitas copiar la clave pública a tu servidor. Hay dos métodos principales: usar un comando automático o hacerlo manualmente.

Método A: Usando ssh-copy-id (Recomendado para macOS/Linux)

Este comando está disponible en macOS y Linux por defecto. Es la forma más sencilla y menos propensa a errores.

  1. En tu terminal local, escribe:

    ssh-copy-id usuario@tu-servidor.com
    

    Reemplaza usuario con tu nombre de usuario en el servidor y tu-servidor.com con la IP o dominio de tu servidor.

  2. Si tu servidor usa un puerto SSH diferente al 22 (algunos hosts lo cambian por seguridad), usa:

    ssh-copy-id -p 2210 usuario@tu-servidor.com
    

    (Cambia 2210 por el puerto correcto).

  3. El sistema te pedirá la contraseña de tu usuario en el servidor. Introdúcela y presiona Enter.

  4. Automáticamente, el comando copiará el contenido de tu id_rsa.pub al archivo ~/.ssh/authorized_keys en el servidor.

Método B: Copiado manual (Válido para todos los sistemas)

Si ssh-copy-id no está disponible (es común en Windows), puedes hacerlo manualmente.

  1. En tu ordenador local, muestra el contenido de tu clave pública. En PowerShell o Terminal, escribe:

    cat ~/.ssh/id_rsa.pub
    

    Verás una larga cadena de texto que empieza con ssh-rsa AAAA.... Cópiala entera.

  2. Conéctate a tu servidor por SSH con tu método actual (usuario y contraseña).

    ssh usuario@tu-servidor.com
    
  3. En el servidor, crea el directorio .ssh (si no existe) y el archivo authorized_keys:

    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    touch ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    
  4. Ahora, abre el archivo con un editor de texto (por ejemplo, nano):

    nano ~/.ssh/authorized_keys
    
  5. Pega el contenido de tu clave pública que copiaste antes en una nueva línea.

  6. Guarda el archivo (en nano: Ctrl+O, luego Enter, y Ctrl+X para salir).


Paso 3: Probar la conexión con la clave pública

Antes de deshabilitar nada, es vital probar que la nueva autenticación funciona.

  1. Desde tu ordenador local, intenta conectarte de nuevo:

    ssh usuario@tu-servidor.com
    
  2. Si configuraste una frase de contraseña (passphrase) al generar la clave, te la pedirá (es la de tu clave local, no la del servidor).

  3. Si todo ha ido bien, entrarás directamente sin que te pida la contraseña del usuario del servidor.

[WARNING] Si después de este paso aún te pide la contraseña del servidor, NO continues con el siguiente paso. Revisa que la clave pública se ha copiado correctamente y que los permisos de los archivos en el servidor son los correctos (.ssh debe ser 700 y authorized_keys debe ser 600).


Paso 4: Deshabilitar la autenticación por contraseña SSH

Este es el paso final para blindar tu seguridad SSH Syspanel. Una vez que estés seguro de que la conexión con tu clave funciona correctamente, vamos a desactivar la posibilidad de iniciar sesión con contraseña. Esto elimina por completo el riesgo de ataques de fuerza bruta.

Este paso requiere mucha atención.

  1. Conéctate a tu servidor (usando tu clave, que ya debería funcionar).

  2. Abre el archivo de configuración del servicio SSH. Normalmente se encuentra en /etc/ssh/sshd_config.

    sudo nano /etc/ssh/sshd_config
    

    (Usa sudo si tu usuario tiene permisos de administrador, o inicia sesión como root).

  3. Dentro del archivo, busca la línea que dice #PasswordAuthentication yes. Debes cambiar esta línea.

  4. Modifícala para que quede así:

    PasswordAuthentication no
    

    Esto le dice al servidor que no acepte contraseñas para iniciar sesión.

  5. Otra línea importante: Busca ChallengeResponseAuthentication. Asegúrate de que también esté en no.

    ChallengeResponseAuthentication no
    
  6. Reinicia el servicio SSH para que los cambios surtan efecto. El comando puede variar ligeramente según el sistema operativo:

    sudo systemctl restart sshd
    

    O en algunos sistemas:

    sudo service ssh restart
    

[WARNING] ¡MUY IMPORTANTE! NO cierres la sesión actual de SSH todavía. Abre una nueva ventana de terminal e intenta conectarte de nuevo. Si todo funciona, entonces puedes cerrar la sesión antigua. Si algo sale mal y no puedes conectarte, aún tienes la sesión abierta para revertir los cambios. Este es el error más común y puede dejarte fuera de tu propio servidor.


Configuración extra en Syspanel (Puerto 2106)

Recuerda que el panel de control Syspanel se gestiona a través del puerto 2106. Esta configuración de SSH es independiente del panel web, pero es una buena práctica asegurar también el acceso a dicho panel.

Syspanel suele gestionar los usuarios del sistema. Asegúrate de que los usuarios que crees en Syspanel tengan acceso SSH configurado de esta manera. La autenticación SSH Syspanel se aplica a nivel de sistema operativo, por lo que cualquier usuario que exista en el servidor se verá afectado por esta política de seguridad.


Preguntas frecuentes (FAQ)

¿Qué hago si he perdido mi clave privada?

Si pierdes tu clave privada, no podrás acceder a tu servidor por SSH y, si has deshabilitado las contraseñas, te quedarás fuera. La única solución sería acceder a través del proveedor de hosting (por ejemplo, un panel de control como VNC o un acceso de emergencia) y volver a configurar una nueva clave.

¿Puedo tener varias claves públicas para diferentes dispositivos?

Sí, por supuesto. Simplemente añade cada clave pública en una línea diferente en el archivo ~/.ssh/authorized_keys de tu servidor. De esta manera, puedes acceder desde tu PC, tu portátil o tu móvil.

¿Es necesario deshabilitar la contraseña?

No es obligatorio, pero es altamente recomendable si quieres maximizar la seguridad. Si solo usas tu clave privada, no hay forma de que un atacante adivine tu contraseña, ya que no se usa.

¿Qué es la frase de contraseña (passphrase)?

Es una contraseña adicional que protege tu clave privada. Si alguien roba tu archivo id_rsa, sin la frase de contraseña no podrá utilizarlo. Aunque es un poco más incómodo, es una capa de seguridad muy valiosa.

¿Puedo usar este método para automatizar tareas (scripts, backups)?

Sí, es perfecto para ello. De hecho, es la forma estándar de hacerlo. Puedes crear claves sin frase de contraseña para que los scripts se ejecuten sin intervención humana. Sin embargo, asegúrate de que esas claves tengan permisos muy restrictivos en el servidor (solo lectura para los archivos que necesitan).


Conclusión

Configurar la autenticación SSH con claves públicas en Syspanel es una de las mejores inversiones de tiempo que puedes hacer para asegurar tu servidor. No solo es un proceso sencillo una vez que lo entiendes, sino que te proporciona una tranquilidad inmensa al saber que tu sistema está protegido contra los ataques más comunes.

Hemos recorrido el camino completo: desde generar las claves, copiarlas al servidor, probarlas y finalmente deshabilitar la contraseña SSH para un acceso más seguro y eficiente.

Recuerda que la seguridad es un proceso continuo. Mantén tu sistema operativo y tus claves actualizadas. Y si tienes alguna duda, siempre puedes volver a esta guía o consultar la documentación oficial.

¡Ya estás listo para disfrutar de un acceso SSH más seguro y sin contraseñas en tu servidor Syspanel!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel