Ya que tenemos nuestro Windows Server 2019 en modo core y le hemos instalado WSL2, nos gustaría administrarlo directamente desde SSH para realizar tareas de despliegue.

Para ello es necesario, abrir el puerto 22 en el firewall de nuestra máquina host, y por otro lado habilitar el SSH en nuestro WSL2.

Abrir puerto 22 en Windows Server 2019

Lo primero que tenemos que saber, es qué perfil de red está utilizando nuestro host, en nuestro caso es una máquina virtual en HyperV y está utilizando el perfil público. Para ver que perfil estamos utilizando:

Get-NetConnectionProfile

Como vemos el puerto es el público, y para nosotros es una red privada, y queremos que utilice este perfil, por lo que vamos a cambiarlo.

Set-NetConnectionProfile -InterfaceAlias Ethernet -NetworkCategory Private

Una vez ejecutado, volvemos a comprobar que estamos utilizando este perfil:

Get-NetConnectionProfile 

Ahora vamos a crear una regla en el firewall de nuestro host, en el que permitamos conectar por el puerto 22 a la máquina.

New-NetFirewallRule -DisplayName "Open 22 port to SSH Connection to WSL2" -Direction Inbound -LocalPort 22 -Protocol TCP

Ya tenemos nuestro puerto abierto. Ahora vamos a configurar el SSH de nuestro WSL2.

Desde nuestro host, conectamos a WSL, simplemente con:

$ bash

Modificamos el fichero /etc/ssh/sshd_config

$ nano /etc/ssh/sshd_config

Y buscamos la línea PasswordAutothentication. La descomentamos en el caso que esté comentada, y le añadimos un yes.

Una vez hecho esto, reiniciamos el servicio SSH.

sudo service ssh --full-restart

Salimos de nuestro WSL con “exit”

Comprobamos la IP del host

Get-NetIPConfiguration

Ahora desde un equipo cliente, dentro de la misma red, podemos conectarnos mediante SSH.

ssh victorrodilla@172.17.27.233 

Con esto podemos administrar los servicios dentro de nuesto WSL2, sin necesidad de tener que habilitar la administración remota de nuestro servidor.