Windows Server incluye la adaptación de OpenSSH Server desarrollada por Microsoft, por lo que puede administrar un equipo Windows igual que uno con Linux: ejecutar comandos de PowerShell por SSH, automatizar tareas desde scripts y copiar archivos de forma segura con scp o con clientes SFTP como WinSCP y FileZilla, sin abrir una sesión de Escritorio remoto. Esta guía explica cómo instalar e iniciar el servidor SSH en Windows Server 2019, 2022 y 2025, cómo establecer PowerShell como shell predeterminado, cómo configurar el inicio de sesión con clave para administradores, cómo cambiar el puerto y cómo transferir archivos.
Abra PowerShell como administrador. El siguiente comando muestra si el cliente y el servidor están instalados; en Windows Server 2025 el servidor suele estar ya presente y solo hay que habilitarlo.
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
# Install the server if its State is NotPresent
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
En Windows Server 2016, que no lo incluye, instale el paquete MSI de Win32-OpenSSH desde las versiones publicadas por Microsoft en el repositorio PowerShell/Win32-OpenSSH de GitHub.
# Start sshd now and at every boot
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
# The installer normally creates an inbound rule for TCP 22; create it if it is missing
if (-not (Get-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -ErrorAction SilentlyContinue)) {
New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' `
-Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
}
Get-Service sshd
netstat -ano | findstr ":22"
Ahora conéctese desde su equipo con ssh [email protected] (Windows 10/11, macOS y Linux incluyen un cliente SSH) y escriba la contraseña de Administrator. De forma predeterminada, obtendrá un símbolo del sistema de cmd.exe.
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell `
-Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
A partir de ahora, las nuevas sesiones SSH se inician en PowerShell. Si instaló PowerShell 7, use en su lugar la ruta de pwsh.exe.
Para las cuentas del grupo Administradores (Administrators), OpenSSH para Windows lee las claves públicas de un único archivo compartido, C:\ProgramData\ssh\administrators_authorized_keys, y no de la carpeta .ssh del propio usuario. El archivo solo debe ser accesible para Administrators y SYSTEM; de lo contrario, sshd lo ignora.
# On your own computer: create a key pair if you do not have one yet
ssh-keygen -t ed25519
# On the server (PowerShell as Administrator): paste your PUBLIC key (id_ed25519.pub)
Add-Content -Path "C:\ProgramData\ssh\administrators_authorized_keys" -Value "ssh-ed25519 AAAA...your-key... you@laptop"
icacls.exe "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
Pruebe el inicio de sesión con clave en una ventana nueva. Cuando funcione, abra C:\ProgramData\ssh\sshd_config en el Bloc de notas y establezca:
PubkeyAuthentication yes
PasswordAuthentication no
Restart-Service sshd
Mantenga abierta su sesión actual hasta confirmar que un nuevo inicio de sesión con clave sigue funcionando. Para los usuarios estándar (no administradores), coloque las claves en C:\Users\USERNAME\.ssh\authorized_keys.
# In C:\ProgramData\ssh\sshd_config set: Port 2222
New-NetFirewallRule -Name 'OpenSSH-2222' -DisplayName 'OpenSSH Server 2222' `
-Direction Inbound -Protocol TCP -LocalPort 2222 -Action Allow
Restart-Service sshd
Disable-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' # close 22 after testing 2222
Para permitir SSH solo desde sus propias direcciones, añada -RemoteAddress 198.51.100.20 a la regla del firewall. Más información sobre las reglas del Firewall de Windows: cómo abrir y cerrar puertos en el Firewall de Windows.
# Upload a file to the Administrator desktop (use forward slashes in Windows paths)
scp .\site-backup.zip [email protected]:C:/Users/Administrator/Desktop/
# Download a folder recursively
scp -r [email protected]:C:/inetpub/wwwroot ./wwwroot-copy
# Interactive SFTP session
sftp -P 2222 [email protected]
Los clientes gráficos como WinSCP y FileZilla también funcionan: elija el protocolo SFTP, la IP y el puerto del servidor, y su clave o contraseña. Para archivos grandes, es mucho más rápido y confiable que copiar a través del portapapeles del Escritorio remoto.
En las cuentas de administrador, la clave debe estar en administrators_authorized_keys con los permisos exactos del paso 4. Revise el registro en Visor de eventos → Registros de aplicaciones y servicios → OpenSSH → Operational (Event Viewer → Applications and Services Logs → OpenSSH → Operational); normalmente indica cuál es el problema, por ejemplo un propietario o unos permisos incorrectos.
El servicio sshd no está en ejecución, falta la regla del firewall o se está conectando a un puerto equivocado. Ejecute Test-NetConnection 203.0.113.10 -Port 22 desde su equipo y Get-Service sshd en el servidor.
Sí. SSH y el Escritorio remoto funcionan en paralelo. Muchos administradores usan SSH para los scripts y las transferencias de archivos, y reservan el Escritorio remoto para las herramientas gráficas.
¿Sigue sin resolverlo después de seguir estos pasos? Abra un ticket de soporte y el equipo técnico de IMIDC, disponible 24/7, le ayudará. Incluya la IP del servidor, la versión de Windows Server, el comando SSH que ejecutó y la salida completa del error (ejecute ssh -v para obtener más detalles) para que podamos localizar el problema más rápido.