Cómo configurar un equipo Windows (Windows 10, Windows 11, Windows Server 2022) para recibir conexiones SSH. Esto nos permitirá conectarnos por SSH desde cualquier otro equipo de la red (sea Linux o Windows). Utilizaremos la propia herramienta que incluye Windows: OpenSSH.

Instalar Servidor OpenSSH en Windows 10, Windows 11 y Windows Server 2022

En primer lugar, en el equipo Windows al que queramos permitir el acceso SSH, necesitaremos instalar OpenSSH. En el caso de Windows 10 y Windows 11, esta herramienta está disponible para instalar, únicamente tendremos que abrir «Configuración» de Windows:

Buscar y ejecutar «Características opcionales»:

Pulsaremos en «Ver características»:

Buscaremos «Servidor OpenSSH» y lo marcaremos para instalar. Pulsaremos «Siguiente»:

Y pulsaremos en «Instalar»:

Esperamos a que se instale completamente el Servidor OpenSSH:

También es posible instalar esta característica desde la línea de comandos PowerShell, con el comando:

Si queremos instalar el Servidor OpenSSH en un servidor con Windows Server 2022 (válido para Windows Server 2019), podremos descargar el instalador msi para Windows de OpenSSH, desde el GitHub oficial de Microsoft:

Una vez descargado, lo ejecutaremos y se instalará directamente el Servidor OpenSSH.

Configurar inicio automático de servicio OpenSSH SSH Server (sshd)

Por defecto, en el caso de Windows 10 y Windows 11, el servicio de OpenSSH SSH Server (sshd) quedará en modo manual y sin iniciar. Desde «services.msc», pulsaremos con el botón derecho del ratón sobre el servicio «OpenSSH SSH Server», seleccionaremos «Propiedades»:

En «Tipo de inicio» elegiremos «Automático» y pulsaremos en «Iniciar».

Configurar inicio automático de servicio OpenSSH SSH Server (sshd)

También podremos hacer este proceso desde la línea de comandos PowerShell, ejecutando los comandos:

Si hemos realizado una instalación del Servidor OpenSSH en Windows Server 2022 con el msi, el servicio anterior quedará iniciado tras la instalación.

Apertura de puerto en cortafuegos de Windows para conexión externa por SSH

Normalmente la instalación del Servidor de OpenSSH creará una regla en el cortafuegos de Windows de forma automática, abriendo el puerto 22:

Pero es recomendable revisarla y limitar el acceso, por seguridad. Para ello, en «Reglas de entrada», pulsaremos con el botón derecho del ratón sobre la regla «OpenSSH SSH Server (sshd)» y seleccionaremos «Propiedades»:

Es conveniente, como decimos, por seguridad, restringir el acceso SSH únicamente a los equipos estrictamente necesarios. Para ello, pulsaremos en «Ámbito» y en «Dirección IP remota» agregaremos sólo las IP a las que queramos permitir el acceso, por ejemplo al equipo con IP 192.168.1.125:

Configuración de Servidor OpenSSH en Windows

Para establecer los valores de configuración de OpenSSH en Windows, deberemos editar el fichero sshd_config, que se suele encontrar en la carpeta:

C:\Programdata\ssh\

Si tenemos activada la protección TrueInstalled en Windows, para editar este fichero, abriremos una ventana de PowerShell como administrador:

Y ejecutaremos el siguiente comando:

Nos abrirá el Notepad con el fichero sshd_config, desde aquí realizaremos las modificaciones que consideremos oportunas y guardaremos los cambios. Si hemos hecho cambios, reiniciaremos el servicio de OpenSSH (sshd) para que se apliquen, con el comando:

Probando el acceso remoto por SSH desde un equipo Linux al equipo Windows

Como prueba, realizaremos una conexión SSH desde un equipo Linux Debian a nuestro equipo Windows con OpenSSH. Para ello, en primer lugar, deberemos conocer la IP del equipo Windows, que en nuestro caso es 192.168.1.10 y un usuario de Windows con permisos de acceso SSH (por defecto del grupo de administradores del equipo), en este caso «alonso». Desde el equipo Linux, ejecutaremos el siguiente comando para conectarnos por SSH al equipo Windows 192.168.1.10 con el usuario «alonso»:

Nos solicitará confirmación para establecer el host a la lista de hosts conocidos de forma permanente. Responderemos «yes» si queremos que no nos lo vuelva a preguntar:

Nos solicitará la contraseña del usuario «alonso» en Windows. La introduciremos y pulsaremos «INTRO»:

Si todo es correcto nos abrirá una consola en el equipo Windows remoto desde el equipo Linux:

Si el usuario con el que hemos iniciado sesión en Windows tiene privilegios suficientes, podremos hacer casi cualquier cosa, como por ejemplo ejecutar comandos PowerShell en el equipo Windows remoto desde el shell de Linux, para ello, introduciremos el comando:

Lo que nos abrirá la consola PowerShell:

Por ejemplo, obtendremos datos del Sistema Operativo mediante WMI de PowerShell, con el comando:

Para desconectarnos del equipo Windows ejecutaremos el comando:

Si estábamos en la consola PowerShell, ejecutaremos el comando exit dos veces, hasta volver al shell local del equipo Linux:

Revisar log de eventos de conexión SSH en equipo Windows

Es conveniente, por seguridad, revisar de vez en cuando el log de conexiones SSH, para asegurarnos de que no estamos teniendo conexiones de equipos no autorizados. Para ello abriremos el Visor de eventos (eventvwr.msc). En la rama «Registros de aplicaciones y servicios» – «OpenSSH» – «Operational»: