Cómo instalar y configurar un servidor SSH en Windows Server

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 iniciar sshd por 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)

  1. Consulta la guía de generación y configuración de claves SSH en el cliente

  2. Registra la clave pública en el servidor:

    • Para usuarios normales: agrega la clave en .ssh\authorized_keys dentro del perfil del usuario.
    • Para administradores: utiliza %ProgramData%\ssh\administrators_authorized_keys.
  3. 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.