• 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:

    1. Vamos a «Panel de control» > «Herramientas administrativas» > «Directiva de seguridad local»
    2. En el panel izquierdo: «Directivas locales» > «Asignación de derechos de usuario».
    3. En el panel de la derecha, doble click en «Reemplazar un símbolo (token) de nivel de proceso».
    4. Hacemos click en el botón «Agregar usuario o grupo» y
    5. En el cuadro de texto «Escriba los nombres de objeto que desea seleccionar», escribimos exactamente:
      NT SERVICE\sshd
      …y le damos a «Aceptar».
    6. Nos saldrá una ventana de confirmación y le volvemos a dar a aceptar.
    7. Reiniciamos una última vez el Windows Home.

    Para inglés:

    1. Vamos a «Control panel» > «Administrative tools» > «Local Security Policy»
    2. En el panel izquierdo: «Local policies» > «User rights assignment».
    3. En el panel de la derecha, doble click en «Replace a process level token».
    4. Hacemos click en el botón «Add user or group» y
    5. En el cuadro de texto «Write objetcs», escribimos exactamente:
      NT SERVICE\sshd
      …y le damos a «Aceptar».
    6. Nos saldrá una ventana de confirmación y le volvemos a dar a aceptar.
    7. 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!

    Los comentarios están cerrados.