Seguridad SSH · 4 min read · Nov 14, 2025

Mejores Prácticas de Seguridad de OpenSSH

SSH (Secure Shell) es un protocolo de red criptográfico para iniciar sesiones de shell basadas en texto en máquinas remotas de manera segura.

OpenSSH es el cliente y servidor SSH estándar utilizado por la mayoría de las distribuciones de Linux. Es una herramienta de conectividad de la que la mayoría de los administradores dependen para trabajar en sus servidores Linux y *BSD. OpenSSH cifra todo el tráfico (incluidas las contraseñas) para eliminar efectivamente la interceptación, el secuestro de conexiones y otros ataques. En otras palabras, “OpenSSH asegura que la conexión a su servidor sea segura”. Consulte el artículo de Wikipedia para un excursus detallado sobre SSH.

Este tutorial cubre las mejores prácticas para configurar su servidor SSH de manera segura.

Seguridad de OpenSSH

Estas son las seis tareas más importantes para asegurar la configuración de su servidor SSH:

  1. Use una contraseña fuerte.
  2. Cambie el puerto predeterminado de SSH.
  3. Siempre use la versión del protocolo 2.
  4. Desactive el inicio de sesión como root.
  5. Limite el acceso de los usuarios.
  6. Use autenticación basada en claves.

Use una contraseña fuerte

Una contraseña es una palabra o cadena de caracteres utilizada para la autenticación del usuario para probar la identidad o la aprobación de acceso para obtener acceso a un recurso. Mantenla en secreto de aquellos que no tienen permiso para acceder al servidor. Use una contraseña compleja y larga, debe ser fácil de recordar y única para usted, pero no fácil de adivinar para otros. No use admin123 o admin, etc., que son fáciles de adivinar y no use fechas de cumpleaños, el nombre de su esposa, etc. Una buena contraseña también debe contener caracteres especiales como ‘.!;/‘ (no solo los caracteres a-c y 0-9). Use caracteres en mayúsculas y minúsculas en la contraseña.

Cambie el puerto predeterminado de SSH

El puerto predeterminado del servicio SSH es 22, debe cambiarlo para que no sea tan obvio que su servidor está ejecutando un servicio SSH. El archivo de configuración de SSH se encuentra en el directorio /etc/sshd/, debe editar el archivo de configuración /etc/ssh/sshd_config.

nano /etc/ssh/sshd_config

Busque la línea “Port”:

Port 22

y cámbielo a su número de puerto favorito, por ejemplo: 1337

Port 1337

Puerto SSH Predeterminado

Por favor, elija un puerto que aún no esté en uso en su servidor. Puede obtener una lista de puertos que están actualmente en uso con el comando:

netstat -ntap

Este comando resulta en una lista bastante larga que muestra todos los puertos y conexiones abiertas. Si solo desea verificar si su puerto deseado está disponible, use este comando en su lugar:

netstat -ntap | grep 4422

En este ejemplo, verificaré si el puerto 4422 está libre. Si el comando no devuelve un resultado, entonces el puerto está disponible y se puede usar para SSH.

Siempre use el protocolo 2

SSH tiene dos versiones de protocolo, el antiguo protocolo 1 que es inseguro y el nuevo protocolo 2. Así que siempre use el protocolo 2 para su servidor SSH, es más seguro que el protocolo 1. Más información aquí.

Protocolo 2 SSH

Desactivar el inicio de sesión como root

Debería desactivar el inicio de sesión directo para el usuario root porque hay muchos ataques de fuerza bruta contra el nombre del superusuario root. IMPORTANTE: pruebe el inicio de sesión SSH con su usuario alternativo no root que planea usar para inicios de sesión SSH antes de desactivar la cuenta root.

PermitRootLogin no

Desactivar inicio de sesión como root

Después de establecer “PermitRootLogin” en “no”, no podrá iniciar sesión con la cuenta root, aunque use la contraseña correcta para el usuario root.

Limitar usuarios

Debería agregar un nuevo usuario para iniciar sesión en su servidor. Suponga que ha creado los usuarios ruiko y mikoto para iniciar sesión en su servidor, entonces puede agregar la nueva línea:

AllowUsers ruiko mikoto

Limitar Usuario

en /etc/ssh/sshd_config para limitar el acceso SSH a estos usuarios.

Usar autenticación basada en claves

Le recomiendo que use esta opción porque es muy fácil de configurar y más segura que la autenticación basada en contraseñas. Primero debe crear un par de claves pública-privada en su computadora local (de escritorio), yo uso Linux para crearlo.

Puede crear el par de claves pública/privada con este comando:

ssh-keygen -t rsa -b 4096

Creará 2 archivos ubicados en el directorio ~/.ssh/, id_rsa como clave privada e id_rsa.pub como clave pública. Si se le solicita una contraseña, puede dejarla en blanco o escribir su contraseña. Se recomienda usar una contraseña para proteger su clave.

Generar Clave SSH

Ahora suba la clave pública id_rsa.pub a su servidor con el comando ssh-copy-id.

ssh-copy-id -i ~/.ssh/id_rsa.pub user@serverip

Escribirá automáticamente su clave pública en el archivo ~/.ssh/authorized_keys/ en su servidor.

Ahora regrese a su servidor y edite nuevamente su archivo de configuración ssh.

nano /etc/ssh/sshd_config

Descomente esta línea:

AuthorizedKeysFile     %h/.ssh/authorized_keys

Agregar Clave Pública

y finalmente reinicie su servidor ssh:

systemctl restart sshd

Ahora intente conectarse a su servidor:

ssh -p '4422' 'user@serverIP'

Conclusión

OpenSSH es el estándar para el acceso remoto seguro a servidores *Unix-like, reemplazando el protocolo telnet sin cifrado. SSH (y su subprotocolo de transferencia de archivos SCP) asegura que la conexión desde su computadora local al servidor esté cifrada y sea segura. La instalación base de OpenSSH ya es bastante segura, pero podemos mejorarla siguiendo la guía anterior.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.