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

Cómo crear y configurar un usuario SSH en Linux

Actualizado el 6 de abril de 2026

¿Qué es un usuario SSH y por qué deberías crearlo?

Cuando hablamos de administrar un servidor Linux, el acceso remoto es una pieza fundamental. SSH (Secure Shell) es el protocolo estándar que te permite conectarte a tu servidor de forma segura, como si estuvieras sentado frente a él. Pero, ¿por qué no usar siempre el usuario root? Porque trabajar como superusuario constantemente es un riesgo de seguridad enorme. Un error de dedo, un script malicioso o una contraseña filtrada pueden comprometer todo el sistema.

Crear un usuario SSH dedicado es una de las primeras y más importantes medidas de seguridad que puedes tomar. Este usuario tendrá permisos limitados, y podrás otorgarle privilegios específicos solo cuando los necesite. Es como dar a cada empleado de una oficina una llave que solo abre la puerta de su propio despacho, en lugar de una llave maestra para todo el edificio.

En esta guía, te explicaré paso a paso cómo crear y configurar un usuario SSH en Linux, desde los conceptos más básicos hasta la configuración avanzada de seguridad. Al final, tendrás un acceso remoto robusto y bien protegido, y entenderás por qué el eslogan "seguridad SSH" no es solo una moda, sino una necesidad.

Prerrequisitos: lo que necesitas antes de empezar

Antes de lanzarnos a la terminal, asegurémonos de que tienes todo lo necesario. No te preocupes, la lista es corta y sencilla.

  • Acceso root o sudo: Necesitarás permisos de superusuario para crear usuarios y modificar archivos del sistema. Si ya tienes una sesión como root, perfecto. Si no, asegúrate de que tu usuario actual tenga privilegios sudo.
  • Servidor Linux: La guía funciona para la mayoría de distribuciones (Ubuntu, Debian, CentOS, Fedora, etc.). Los comandos son prácticamente universales.
  • Cliente SSH: Desde tu máquina local, necesitarás un cliente SSH. En Linux y macOS, es la terminal. En Windows, puedes usar PowerShell, CMD o herramientas como PuTTY.
  • Conexión estable: Asegúrate de tener una conexión de red fiable para no interrumpir el proceso.

[INFO] Si estás usando un panel de control como Syspanel (accesible por el puerto 2106), es probable que ya gestione usuarios SSH por ti. Sin embargo, entender el proceso manual te dará un control total y te ayudará a solucionar problemas.

Paso 1: Crear un usuario SSH en Linux

El primer paso es crear el usuario. Para ello, usaremos el comando adduser o useradd. Te recomiendo adduser, ya que es más interactivo y te guía en el proceso.

Usando el comando adduser (recomendado para principiantes)

  1. Conéctate a tu servidor como root o con un usuario con permisos sudo.
  2. Ejecuta el siguiente comando, reemplazando nuevousuario con el nombre que quieras:
adduser nuevousuario
  1. El sistema te pedirá que establezcas una contraseña. Elige una contraseña fuerte (mínimo 12 caracteres, con mayúsculas, minúsculas, números y símbolos).
  2. Después, te pedirá información adicional (nombre completo, teléfono, etc.). Puedes dejarlo en blanco pulsando Enter para cada campo, o rellenarlos si lo deseas.
  3. Al final, te pedirá confirmación. Escribe S y pulsa Enter.

[TIP] Evita nombres de usuario obvios como admin, test o usuario. Los bots de fuerza bruta atacan primero estos nombres. Usa algo menos predecible, como juan_dev o maria_ops.

Usando el comando useradd (más control, más complejo)

Si prefieres un enfoque más directo, puedes usar useradd. Este comando no es interactivo, por lo que debes especificar todas las opciones:

useradd -m -s /bin/bash -G sudo nuevousuario
passwd nuevousuario
  • -m: Crea el directorio home del usuario.
  • -s /bin/bash: Asigna la shell Bash al usuario.
  • -G sudo: Añade al usuario al grupo sudo (para que pueda ejecutar comandos administrativos). En distribuciones basadas en Red Hat (CentOS, Fedora), el grupo se llama wheel.

[WARNING] No añadas al usuario al grupo sudo si no es necesario. El principio de menor privilegio es clave para la seguridad SSH. Puedes agregarlo más tarde si lo necesitas.

Paso 2: Configurar el acceso SSH con clave pública (recomendado)

Ahora que tienes tu usuario, es hora de configurar el acceso SSH. La forma más segura es usar claves públicas y privadas en lugar de contraseñas. Esto elimina el riesgo de ataques de fuerza bruta y phishing.

Generar un par de claves en tu máquina local

  1. En tu ordenador local (no en el servidor), abre una terminal y ejecuta:
ssh-keygen -t ed25519 -C "tu_email@ejemplo.com"
  1. Te preguntará dónde guardar la clave. Pulsa Enter para usar la ubicación predeterminada (~/.ssh/id_ed25519).
  2. Opcionalmente, puedes establecer una frase de contraseña para proteger tu clave privada. Es muy recomendable hacerlo.
  3. Esto generará dos archivos: id_ed25519 (tu clave privada, que nunca debes compartir) y id_ed25519.pub (tu clave pública, que subirás al servidor).

[INFO] Si tu sistema no soporta el algoritmo ed25519, puedes usar rsa con ssh-keygen -t rsa -b 4096. Es más largo, pero igualmente seguro.

Copiar la clave pública al servidor

Ahora necesitas transferir tu clave pública al servidor. El comando ssh-copy-id es la forma más fácil:

ssh-copy-id nuevousuario@tu_servidor_ip

Te pedirá la contraseña del usuario nuevousuario que configuraste antes. Una vez introducida, la clave se añadirá automáticamente al archivo ~/.ssh/authorized_keys del servidor.

Si ssh-copy-id no está disponible, puedes hacerlo manualmente:

  1. Muestra el contenido de tu clave pública: cat ~/.ssh/id_ed25519.pub.
  2. Conéctate al servidor con tu usuario: ssh nuevousuario@tu_servidor_ip.
  3. Crea el directorio .ssh si no existe: mkdir -p ~/.ssh.
  4. Crea el archivo authorized_keys o añade la clave: echo "TU_CLAVE_PUBLICA" >> ~/.ssh/authorized_keys.
  5. Establece los permisos correctos:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Probar la conexión por clave

Ahora, desde tu máquina local, intenta conectar al servidor:

ssh nuevousuario@tu_servidor_ip

Si todo ha ido bien, deberías conectarte sin necesidad de introducir la contraseña (solo la frase de contraseña de tu clave, si la has configurado). Si funciona, ¡enhorabuena! Ya tienes un acceso SSH seguro.

[TIP] Si tienes problemas de conexión, comprueba los permisos del directorio .ssh y del archivo authorized_keys. Los permisos incorrectos son la causa más común de fallos.

Paso 3: Configurar SSH para aumentar la seguridad

Ahora que tienes un usuario y acceso por clave, es hora de endurecer la configuración del servidor SSH. Esto es lo que realmente marca la diferencia en la seguridad SSH.

Editar el archivo de configuración sshd_config

El archivo principal de configuración es /etc/ssh/sshd_config. Debes editarlo con permisos de superusuario:

sudo nano /etc/ssh/sshd_config

Aquí tienes los cambios más importantes que debes realizar:

1. Deshabilitar el acceso root por SSH

Busca la línea PermitRootLogin y cámbiala a no:

PermitRootLogin no

Esto impide que alguien intente conectarse directamente como root. Siempre puedes usar sudo después de conectarte con tu usuario normal.

2. Deshabilitar la autenticación por contraseña

Busca la línea PasswordAuthentication y cámbiala a no:

PasswordAuthentication no

Esto fuerza el uso de claves públicas, eliminando el riesgo de ataques de fuerza bruta con contraseñas.

3. Limitar los usuarios que pueden conectarse

Añade la siguiente línea (o descoméntala) para especificar qué usuarios pueden acceder:

AllowUsers nuevousuario

Puedes añadir varios usuarios separados por espacios: AllowUsers usuario1 usuario2.

4. Cambiar el puerto SSH (opcional)

Busca la línea Port y cámbiala a un número alto, por ejemplo 2222:

Port 2222

Esto no es una seguridad infalible, pero reduce el ruido de los bots que escanean el puerto 22.

5. Configurar el tiempo de espera de conexión

Añade o modifica esta línea para evitar que las conexiones inactivas se mantengan abiertas:

ClientAliveInterval 300
ClientAliveCountMax 2

Esto cerrará la sesión si el cliente no envía datos durante 5 minutos (300 segundos) y falla 2 veces.

6. Limitar los intentos de autenticación

Añade o modifica esta línea para reducir los intentos de contraseña:

MaxAuthTries 3

[WARNING] Antes de reiniciar el servicio SSH, asegúrate de que tu configuración es correcta. Un error puede dejarte fuera del servidor. Para probar, ejecuta sudo sshd -t. Si no muestra errores, puedes reiniciar el servicio con sudo systemctl restart sshd (o sudo service ssh restart en sistemas más antiguos).

Configurar un firewall

Un firewall es tu primera línea de defensa. Si solo quieres permitir el acceso SSH desde tu IP, puedes usar ufw (en Ubuntu/Debian) o firewalld (en CentOS/Fedora).

Con ufw:

sudo ufw allow from TU_IP_LOCAL to any port 2222
sudo ufw enable

Con firewalld:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="TU_IP_LOCAL" port port="2222" protocol="tcp" accept'
sudo firewall-cmd --reload

Reemplaza TU_IP_LOCAL con tu dirección IP pública (o rango de IPs). Esto bloquea el acceso SSH desde cualquier otra parte.

Paso 4: Buenas prácticas y solución de problemas comunes

Aquí tienes algunas recomendaciones adicionales y problemas frecuentes que puedes encontrar.

Buenas prácticas

  • Copia de seguridad de la configuración: Antes de hacer cambios, copia el archivo sshd_config: sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup.
  • Usa sudo en lugar de su: Cuando necesites permisos de administrador, usa sudo en lugar de cambiar al usuario root. Esto deja un registro de auditoría.
  • Monitorea los logs: Revisa periódicamente los archivos de log en /var/log/auth.log (Debian/Ubuntu) o /var/log/secure (Red Hat/CentOS) para ver intentos de conexión.
  • Mantén el sistema actualizado: Ejecuta sudo apt update && sudo apt upgrade (Debian/Ubuntu) o sudo yum update (Red Hat/CentOS) regularmente para parchear vulnerabilidades.

[INFO] Si usas Syspanel (panel de control en el puerto 2106), este panel puede gestionar usuarios SSH y sus claves de forma gráfica. Sin embargo, los pasos de este artículo te dan el conocimiento para hacerlo manualmente, lo cual es muy valioso para solucionar problemas o si el panel no está disponible.

Solución de problemas comunes

"Permission denied (publickey)"

Esto significa que tu clave no está siendo aceptada. Comprueba:

  • Que la clave pública está en ~/.ssh/authorized_keys del servidor.
  • Que los permisos de ~/.ssh son 700 y authorized_keys es 600.
  • Que el usuario correcto está en AllowUsers.

"Connection refused"

El servidor SSH no está escuchando en el puerto esperado. Comprueba:

  • Que el servicio SSH está activo: sudo systemctl status sshd.
  • Que el firewall permite el tráfico en el puerto configurado.

"Connection timed out"

El servidor no responde. Comprueba:

  • Que la IP es correcta.
  • Que el firewall local o del proveedor de hosting no bloquea el puerto.

Preguntas frecuentes (FAQ)

¿Puedo tener varios usuarios SSH?

Sí, puedes crear tantos usuarios como necesites. Simplemente repite el paso 1 para cada usuario y añádelos a AllowUsers en la configuración SSH.

¿Es seguro usar el puerto 22?

El puerto 22 es el estándar y es seguro siempre que tengas una buena configuración (claves, firewall, etc.). Cambiar el puerto es una capa extra de "seguridad por oscuridad", pero no es esencial.

¿Qué es una frase de contraseña en la clave SSH?

Es una contraseña adicional que protege tu clave privada. Si alguien roba tu clave, no podrá usarla sin la frase. Es muy recomendable.

¿Cómo puedo revocar el acceso de un usuario?

Elimina su clave pública del archivo authorized_keys o elimina el usuario por completo con sudo userdel -r nombre_usuario. También puedes quitarlo de AllowUsers en la configuración SSH.

¿Qué hago si me quedo fuera de mi servidor?

Si has configurado mal algo y no puedes acceder, puedes usar la consola web de tu proveedor de hosting (si la tiene) o conectarte físicamente (o mediante un KVM). Desde ahí, puedes revertir los cambios en sshd_config o en el firewall.

Conclusión

Crear y configurar un usuario SSH en Linux es un proceso sencillo pero poderoso que transforma la seguridad de tu servidor. Hemos visto cómo crear un usuario, configurar el acceso por claves públicas, endurecer la configuración del demonio SSH y proteger el acceso con un firewall. Siguiendo estos pasos, has eliminado los vectores de ataque más comunes y has establecido una base sólida para la administración remota.

Recuerda que la seguridad no es un estado, sino un proceso continuo. Mantén tus sistemas actualizados, revisa los logs con regularidad y nunca dejes de aprender. Con este conocimiento, ya puedes administrar tu servidor Linux con confianza y tranquilidad.

[TIP] Guarda este artículo como referencia. La próxima vez que necesites configurar un servidor, ya sabrás exactamente qué hacer. Y si usas Syspanel, recuerda que su acceso web es por el puerto 2106, pero el control fino que has aprendido aquí te hará un mejor administrador.


Espero que esta guía te haya sido de gran ayuda. Si tienes más dudas, no dudes en buscar más información o consultar la documentación oficial de tu distribución Linux. ¡Buena suerte con tu servidor!

¿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