Descripción general
sshd se ejecuta en segundo plano y, por defecto, espera conexiones de clientes SSH a través del puerto TCP 22. Todas las comunicaciones están cifradas para mantener la seguridad y admite varios métodos de autenticación (contraseñas, claves públicas, etc.).
Funciones principales
- Proporciona acceso seguro a shells remotos
- Soporta transferencia de archivos a través de SCP/SFTP
- Funciones de reenvío de puertos y túneles
- Admite varios mecanismos de autenticación (contraseñas, claves públicas)
Archivo de configuración principal
El comportamiento de sshd se controla principalmente a través del siguiente archivo de configuración.
- Ruta: /etc/ssh/sshd_config
Opciones principales
sshd generalmente se ejecuta como un servicio del sistema, por lo que no se usan con frecuencia las opciones de línea de comandos directamente, pero hay algunas opciones que se pueden usar para depuración o pruebas.
Ejecución y depuración
Comando generado:
Combina los comandos.
Descripción:
`sshd` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de uso
sshd se controla principalmente a través de administradores de servicios como systemd.
Verificar el estado del servicio sshd
sudo systemctl status sshd
Verifica el estado actual del servicio sshd.
Reiniciar el servicio sshd
sudo systemctl restart sshd
Reinicia el servicio sshd después de cambiar la configuración para aplicar los cambios.
Habilitar el servicio sshd (inicio automático al arrancar)
sudo systemctl enable sshd
Configura el servicio sshd para que se inicie automáticamente al arrancar el sistema.
Validar el archivo de configuración de sshd
sudo sshd -t
Verifica si el archivo sshd_config tiene errores de sintaxis.
Ejecutar sshd en modo de depuración (para pruebas)
sudo sshd -d -p 2222
Ejecuta sshd en modo de depuración en un puerto diferente (por ejemplo, 2222) en lugar del puerto predeterminado. Es útil para probar sin afectar el servicio real.
Instalación
sshd forma parte del paquete del servidor OpenSSH. Está instalado por defecto en la mayoría de las distribuciones de Linux, pero si no está presente, puedes instalarlo usando los siguientes comandos.
Sistemas basados en Debian/Ubuntu
sudo apt update
sudo apt install openssh-server
Sistemas basados en CentOS/RHEL/Fedora
sudo yum install openssh-server # o sudo dnf install openssh-server
Consejos y precauciones
sshd desempeña un papel muy importante en la seguridad del sistema, por lo que se recomienda tener en cuenta lo siguiente al configurar.
Consejos para mejorar la seguridad
- **Cambiar el puerto predeterminado**: Cambia `Port 22` a otro número de puerto alto arbitrario para reducir los ataques de fuerza bruta.
- **Deshabilitar el inicio de sesión de root**: Configura `PermitRootLogin no` para prohibir el inicio de sesión directo con la cuenta root.
- **Deshabilitar la autenticación por contraseña y usar autenticación por clave pública**: Configura `PasswordAuthentication no` y usa autenticación por clave pública (`PubkeyAuthentication yes`) para mejorar la seguridad.
- **Restringir usuarios permitidos**: Especifica explícitamente los usuarios o grupos a los que se les permite el acceso SSH usando las opciones `AllowUsers` o `AllowGroups`.
- **Configurar el firewall**: Configura el firewall (ufw, firewalld, etc.) para permitir el acceso externo solo al puerto SSH (predeterminado 22 o el puerto modificado).
Reiniciar el servicio después de cambiar la configuración
Después de modificar el archivo `sshd_config`, debes reiniciar el servicio usando el comando `sudo systemctl restart sshd` para que los cambios surtan efecto.
Probar la conexión
Después de cambiar la configuración, asegúrate de intentar conectarte por SSH desde otra terminal para verificar que los cambios se hayan aplicado correctamente. Se recomienda probar manteniendo la sesión existente.