Cómo configurar y asegurar el servidor SSH (sshd) con ejemplos
09:38, 25.05.2026
Secure Shell (SSH) es la base de la gestión remota de servidores. Su componente de servidor, sshd, ofrece potentes opciones de configuración tanto para usuarios comunes como para administradores corporativos. En esta guía se describe cómo configurar y proteger sshd, y se incluyen ejemplos prácticos que le ayudarán a comprender y aplicar las mejores prácticas.
Cómo interactúan los archivos de configuración
El archivo de configuración principal del demonio SSH es /etc/ssh/sshd_config. Este archivo determina cómo se comporta el servidor al aceptar conexiones SSH.
Por el contrario, la configuración del cliente se almacena en el archivo /etc/ssh/ssh_config o en el archivo de usuario ~/.ssh/config. Sin embargo, es en sshd_config donde los administradores controlan los métodos de autenticación, las reglas de acceso y el comportamiento de las sesiones.
Cuando el demonio SSH se inicia o se reinicia, lee sshd_config de arriba abajo. Si una directiva se repite, normalmente prevalece la última entrada válida. Después de realizar los cambios, ejecute:
sudo systemctl restart sshd
O, en algunos sistemas:
sudo service ssh restart
Para comprobar la configuración antes de reiniciar:
sshd -t
Configuración típica para uso personal de SSH
Si gestionas un VPS personal o un laboratorio doméstico, puedes mejorar la seguridad y la comodidad con unos sencillos ajustes:
Puerto 2222
PermitRootLogin no
PasswordAuthentication no
AllowUsers alice
Estos ajustes cambian el puerto SSH predeterminado, desactivan el inicio de sesión del usuario root, exigen la autenticación mediante claves y restringen el acceso a usuarios específicos. Haga siempre una copia de seguridad del archivo original antes de realizar cambios.
Configuración general de SSH para organizaciones
En entornos corporativos, la configuración de SSH debe garantizar un equilibrio entre la facilidad de uso, el cumplimiento normativo y la seguridad. A continuación se enumeran las configuraciones principales que las organizaciones suelen modificar en sshd_config.
Configuración de la política de cifrado
Establezca algoritmos de cifrado modernos y seguros para proteger los datos durante la transmisión. Utilice las directivas Ciphers, MACs y KexAlgorithms :
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
KexAlgorithms curve25519-sha256,ecdh-sha2-nistp521
Estas configuraciones eliminan los algoritmos obsoletos y garantizan el cumplimiento de las mejores prácticas en el campo de la criptografía.
Habilitar el registro detallado
Para fines de auditoría y depuración, aumente el nivel de detalle del registro:
LogLevel VERBOSE
Esto proporciona información más detallada sobre la actividad de los usuarios y los intentos de autenticación, lo cual es útil para la supervisión de la seguridad.
Configuración de la ruta para AuthorizedKeysFile
Para centralizar o personalizar la ubicación desde la que se leen las claves públicas:
AuthorizedKeysFile /etc/ssh/authorized_keys/%u
En este ejemplo, la clave pública de cada usuario se almacena en un directorio compartido, sustituyendo %u por el nombre de usuario.
Control de acceso de root
El inicio de sesión de root debe controlarse estrictamente o desactivarse por completo:
PermitRootLogin prohibit-password
Esto permite el inicio de sesión de root solo mediante autenticación basada en claves. Para desactivar por completo el acceso de root:
PermitRootLogin no
Visualización del banner de inicio de sesión
Para cumplir con los estándares de conformidad o mostrar un aviso legal, configura el banner de inicio de sesión:
Banner /etc/issue.net
Rellene /etc/issue.net con el mensaje deseado, por ejemplo:
Queda prohibido el acceso no autorizado a este sistema.
Toda la actividad es supervisada y registrada.
Gestión de la configuración del reenvío de puertos
Restringe o habilita el reenvío de puertos según la política interna:
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
Para los usuarios que necesiten un túnel seguro, estos parámetros se pueden habilitar de forma selectiva.
Uso de la autenticación basada en certificados
Para entornos que gestionan un gran número de usuarios, los certificados SSH proporcionan un control de acceso escalable. Cree una clave CA y firme las claves públicas de los usuarios:
ssh-keygen -s ca_key -I user_id user_key.pub
En el archivo sshd_config, especifique la CA de confianza:
TrustedUserCAKeys /etc/ssh/ca.pub
Esto permite autenticar cualquier clave firmada por la CA especificada, lo que simplifica la gestión de usuarios.
Explicación de la sintaxis y la estructura de sshd_config
La sintaxis de sshd_config es sencilla: una directiva por línea, seguida de sus valores. Los comentarios comienzan con #.
# Esto es un comentario
Puerto 22
PermitRootLogin no
Las directivas no distinguen entre mayúsculas y minúsculas, pero para facilitar la lectura se debe seguir el formato convencional. Errores comunes:
- Espacios al final de la línea
- Valores incorrectos de los parámetros
- Repetición de directivas contradictorias
Para aplicar los cambios:
sudo systemctl reload sshd
O utilice sshd -t antes de reiniciar, para asegurarse de que la sintaxis es correcta.