-
Activar el servidor SSH nativo de Windows
Para ver que paquetes OpenSSH están disponibles en nuestro Windows, abrimos powershell como Administrador y ejecutamos:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*' | Select-Object -ExpandProperty Name
Para instalarlo y activarlo:
$vNomPaquete = Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*' | Select-Object -ExpandProperty Name Add-WindowsCapability -Online -Name $vNomPaquete Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic'
Si tenemos capadas las conexiones entrantes, deberemos agregar una regla para permitir conexiones entrantes en el puerto 22:
New-NetFirewallRule -DisplayName "Allow SSH TCP 22" -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
NOTA: Si no podemos iniciar correctamente el servicio con Start-Service sshd, es posible que estemos utilizando la versión Home de Windows. En ese caso hacemos este truco:
- Primero borramos el servidor de OpenSSH, ejecutando en PowerShell, como Administrador:
$vNomPaquete = Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*' | Select-Object -ExpantProperty Name Remove-WindowsCapability -Online -Name $vNomPaquete
Luego iniciamos Linux desde un live cd y borramos completamente la carpeta c:\ProgramData\ssh\
Volvemos a iniciar Windows e instalamos el servidor OpenSSH. Al finalizar la instalación, reiniciamos el Windows.
Cuando termine de reiniciar, y dependiendo si tenemos la versión en español o en inglés de Windows, para español:
- Vamos a «Panel de control» > «Herramientas administrativas» > «Directiva de seguridad local»
- En el panel izquierdo: «Directivas locales» > «Asignación de derechos de usuario».
- En el panel de la derecha, doble click en «Reemplazar un símbolo (token) de nivel de proceso».
- Hacemos click en el botón «Agregar usuario o grupo» y
- En el cuadro de texto «Escriba los nombres de objeto que desea seleccionar», escribimos exactamente:
NT SERVICE\sshd
…y le damos a «Aceptar». - Nos saldrá una ventana de confirmación y le volvemos a dar a aceptar.
- Reiniciamos una última vez el Windows Home.
Para inglés:
- Vamos a «Control panel» > «Administrative tools» > «Local Security Policy»
- En el panel izquierdo: «Local policies» > «User rights assignment».
- En el panel de la derecha, doble click en «Replace a process level token».
- Hacemos click en el botón «Add user or group» y
- En el cuadro de texto «Write objetcs», escribimos exactamente:
NT SERVICE\sshd
…y le damos a «Aceptar». - Nos saldrá una ventana de confirmación y le volvemos a dar a aceptar.
- Reiniciamos una última vez el Windows Home.
Finalmente, al acabar de reiniciar, abrimos otra vez PowerShell como Administrador y volvemos a ejecutar:
Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic'
…y todo habrá ido como la seda!