OpenSSH en Windows Server se activa desde PowerShell elevado. Add-WindowsCapability instala OpenSSH.Server, Start-Service sshd arranca el servicio y Set-Service lo deja en automático. Para entrar con clave desde el móvil hay un detalle: las cuentas administradoras leen C:\ProgramData\ssh\administrators_authorized_keys, no el authorized_keys del perfil. El puerto por defecto es TCP 22.

Instalar OpenSSH.Server en Windows Server con Add-WindowsCapability

El servidor OpenSSH de Windows es una capacidad opcional del sistema. Se consulta y se instala con dos cmdlets desde una consola de PowerShell abierta como administrador:

# Comprobar el estado de cliente y servidor
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

# Instalar el servidor
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

La primera orden devuelve State : Installed o State : NotPresent para OpenSSH.Client y OpenSSH.Server. Si el servidor ya figura como instalado, salta directamente al siguiente paso. La instalación crea el servicio sshd y la carpeta de configuración C:\ProgramData\ssh, donde se generan las claves de host y el archivo sshd_config.

Arrancar el servicio sshd de Windows y abrir el puerto 22

El servicio sshd queda instalado pero detenido y en arranque manual. Estas órdenes lo ponen en marcha, lo dejan en automático y verifican el cortafuegos:

Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
Get-Service sshd

# Ver si existe la regla de entrada para SSH
Get-NetFirewallRule -Name *ssh*

# Si no existe, crearla para TCP 22
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

El archivo C:\ProgramData\ssh\sshd_config acepta las mismas directivas que en Unix, como PasswordAuthentication, Port o AllowGroups. Su referencia completa está en la página de manual de sshd_config. Tras cada cambio hay que ejecutar Restart-Service sshd. Si el servidor no tiene IP pública, o no quieres exponer el 22 a internet, una red privada en malla sin puertos como Prialo, o Tailscale, permite llegar a él sin abrir nada en el router.

administrators_authorized_keys: por qué tu clave SSH no entra en Windows Server

Si el usuario pertenece al grupo de administradores locales, sshd ignora %USERPROFILE%\.ssh\authorized_keys. El sshd_config por defecto termina con este bloque:

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

La clave pública del móvil va, por tanto, en ese archivo común. Además, el archivo debe ser accesible solo para Administradores y SYSTEM; si hereda permisos de otros usuarios, sshd lo rechaza. Es el equivalente en ACL a los permisos 700 de ~/.ssh y 600 de authorized_keys en Linux. Los SID evitan problemas con los nombres de grupo traducidos en un Windows en castellano:

$key = 'ssh-ed25519 AAAA...tu-clave... movil'
Add-Content -Path 'C:\ProgramData\ssh\administrators_authorized_keys' -Value $key

# Quitar herencia y dejar solo Administradores (S-1-5-32-544) y SYSTEM (S-1-5-18)
icacls.exe 'C:\ProgramData\ssh\administrators_authorized_keys' /inheritance:r /grant '*S-1-5-32-544:F' /grant '*S-1-5-18:F'

Usa una clave Ed25519: OpenSSH la admite desde la versión 6.5. A partir de OpenSSH 8.8, la firma ssh-rsa con SHA-1 está desactivada por defecto, y las claves RSA antiguas dan errores difíciles de interpretar. En termi1 la clave se genera en el propio teléfono y se guarda en el almacén seguro del sistema. Solo copias la parte pública; la privada no sale del dispositivo.

PowerShell como shell por defecto de sshd en Windows Server

Sin más configuración, una sesión SSH en Windows abre cmd.exe. El valor de registro DefaultShell en HKLM:\SOFTWARE\OpenSSH cambia ese comportamiento:

New-ItemProperty -Path 'HKLM:\SOFTWARE\OpenSSH' -Name DefaultShell -Value 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' -PropertyType String -Force
Restart-Service sshd

Si tienes PowerShell 7 instalado, apunta el valor a C:\Program Files\PowerShell\7\pwsh.exe. Con PowerShell como shell, desde el móvil puedes usar directamente Get-Service, Get-EventLog o Restart-Service sin tener que escribir powershell al entrar.

Conectar al Windows Server por SSH desde el móvil frente a escritorio

La conexión es idéntica en cualquier cliente: usuario, IP o nombre del servidor, puerto 22 y la clave Ed25519. Cambia la forma de trabajar:

Qué se mideMóvil (iOS/Android)Escritorio
Teclas para PowerShellTeclado de termi1 con Tab, Ctrl, Esc y flechasTeclado físico completo
Dónde vive la claveAlmacén seguro del sistema; la privada no sale del móvilFichero en ~/.ssh con permisos 600
Transferir archivosSFTP integrado sin salir de la sesiónsftp o scp (SFTP por defecto desde OpenSSH 9.0)
Cambio de redReconectar por SSH; Windows no trae mosh-serverReconectar por SSH
Acceso sin IP públicaPrialo o Tailscale en el teléfonoPrialo o Tailscale en el equipo

En PowerShell, Tab completa cmdlets y parámetros, así que el teclado de la terminal SSH termi1 ahorra mucho tecleo. La IA convierte una frase como «reinicia el servicio de impresión» en el comando y lo escribe en el prompt sin pulsar Intro. Si etiquetas el servidor como producción, Production Guard retiene antes del prompt cualquier Stop-Service o borrado.

4 errores al activar OpenSSH en Windows Server

  1. Poner la clave en el perfil del administrador. Para el grupo administrators manda administrators_authorized_keys.
  2. Dejar la herencia de permisos activa. Si otros usuarios tienen acceso al archivo, sshd lo ignora sin avisar al cliente.
  3. Olvidar el arranque automático. Sin Set-Service -StartupType 'Automatic', el servidor deja de aceptar SSH tras reiniciar.
  4. Esperar Mosh o tmux. Son herramientas del lado Unix; con Windows la sesión es SSH puro.

Preguntas frecuentes

¿Cómo se instala OpenSSH Server en Windows Server?

OpenSSH Server en Windows Server se instala desde PowerShell elevado con Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0. Después hay que arrancar el servicio con Start-Service sshd, ponerlo en automático con Set-Service y comprobar que existe una regla de cortafuegos para TCP 22.

¿Dónde va la clave pública de un administrador en OpenSSH para Windows?

La clave pública de un administrador en OpenSSH para Windows va en C:\ProgramData\ssh\administrators_authorized_keys, no en el perfil del usuario. El archivo solo debe dar acceso a Administradores y SYSTEM; se ajusta con icacls quitando la herencia. Si conserva otros permisos, sshd rechaza la clave.

¿Se puede usar Mosh para conectar a un Windows Server?

Mosh necesita ejecutar mosh-server en el equipo remoto a través de una conexión SSH inicial, y OpenSSH para Windows no lo incluye. Con un Windows Server la sesión desde el móvil es SSH estándar: si cambias de wifi a datos, toca reconectar.

¿Cómo se pone PowerShell como shell de SSH en Windows?

PowerShell se convierte en el shell de SSH en Windows creando el valor DefaultShell en HKLM:\SOFTWARE\OpenSSH con la ruta de powershell.exe o pwsh.exe. Se hace con New-ItemProperty y después se reinicia el servicio con Restart-Service sshd.