- Descripción general
- Convenciones de variables
- Paso 1: Instalar el servidor OpenSSH
- Paso 2: Iniciar el servicio y configurarlo para inicio automático
- Paso 3: Configurar el firewall
- Paso 4: Configurar autenticación por clave (recomendado)
- Paso 5: Primera conexión y verificación
- Paso 6: Restricciones y fortalecimiento de la seguridad
- Paso 7: Ver logs
- Conclusión
Descripción general
En este artículo, aprenderás a instalar OpenSSH Server en Windows Server, habilitar la autenticación mediante claves, configurar el servicio y permitir el tráfico SSH en el firewall, todo paso a paso.
Convenciones de variables
| Variable | Ejemplo | Descripción |
|---|---|---|
<<SERVER>> |
192.168.1.10 |
Nombre de host o dirección IP del destino |
Paso 1: Instalar el servidor OpenSSH
Abre PowerShell con privilegios de administrador y ejecuta el siguiente comando:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Paso 2: Iniciar el servicio y configurarlo para inicio automático
Después de la instalación, inicia el servicio sshd y configúralo para que se inicie automáticamente:
# Iniciar el servicio
Start-Service sshd
# Habilitar inicio automático
Set-Service -Name sshd -StartupType Automatic
💡 Nota
Al iniciarsshdpor primera vez, se generan automáticamente los archivos de configuración y claves de host.
Entre ellos:
%ProgramData%\ssh\sshd_config(archivo de configuración)%ProgramData%\ssh\ssh_host_*(claves de host)Realiza cualquier modificación después de que estos archivos se hayan creado.
Paso 3: Configurar el firewall
Para permitir el tráfico SSH (puerto 22 por defecto), agrega una regla de entrada en el firewall de Windows Defender:
New-NetFirewallRule -Name "OpenSSH-Server" -DisplayName "OpenSSH Server (sshd)" `
-Enabled True -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
Paso 4: Configurar autenticación por clave (recomendado)
-
Consulta la guía de generación y configuración de claves SSH en el cliente
-
Registra la clave pública en el servidor:
- Para usuarios normales: agrega la clave en
.ssh\authorized_keysdentro del perfil del usuario. - Para administradores: utiliza
%ProgramData%\ssh\administrators_authorized_keys.
- Para usuarios normales: agrega la clave en
-
Edita el archivo
sshd_config(ubicado en%ProgramData%\ssh\sshd_config) y asegúrate de tener:PubkeyAuthentication yes AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Paso 5: Primera conexión y verificación
Desde el cliente, conecta al servidor con:
ssh Administrator@<<SERVER>>
Durante la primera conexión, se mostrará un aviso para verificar la clave del host.
Una vez conectado, ejecuta whoami para confirmar que has iniciado sesión con el usuario correcto.
Paso 6: Restricciones y fortalecimiento de la seguridad
En el archivo sshd_config, añade o modifica las siguientes líneas según sea necesario:
Port 2222
AllowGroups SSHAdmins
AllowUsers Administrator deployuser
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
- Port 2222
Cambiar el puerto predeterminado 22 reduce los intentos automáticos de ataque. - AllowGroups SSHAdmins
Restringe el acceso SSH solo a un grupo definido, reduciendo el riesgo de intrusión.ℹ️ Nota
En Windows Server 2025 o posterior, esta restricción puede aplicarse de manera predeterminada. - AllowUsers Administrator deployuser
Define qué usuarios pueden conectarse. - PasswordAuthentication no
Desactiva la autenticación por contraseña para aumentar la seguridad. - KbdInteractiveAuthentication no
Desactiva métodos interactivos de autenticación. - PubkeyAuthentication yes
Garantiza que solo se use autenticación mediante claves.
Asegúrate de crear los usuarios y grupos (SSHAdmins, deployuser, etc.) con los permisos mínimos necesarios.
También es recomendable establecer LogLevel VERBOSE para mejorar la auditoría de conexiones.
Paso 7: Ver logs
Para revisar los registros recientes de OpenSSH, usa PowerShell:
Get-WinEvent -LogName OpenSSH/Operational `
| Where-Object { $_.TimeCreated -ge (Get-Date).AddHours(-1) } `
| Select-Object TimeCreated, Id, LevelDisplayName, Message
💡 Consejo
Puedes listar los nombres de registro disponibles con:
wevtutil el | findstr OpenSSH
Utiliza el nombre mostrado en -LogName.
Conclusión
Con OpenSSH configurado en Windows Server, puedes administrar tu entorno de forma remota igual que en Linux o Unix.
La combinación de autenticación por clave, configuración de servicio y firewall te permitirá operar un sistema seguro y estable.
