Iniciar el servidor SSH automáticamente en WSL

Documentación para iniciar el servidor SSH de WSL junto con el arranque del sistema de Windows. El comportamiento normal es que WSL no iniciará una tarea mientras no ejecutemos el bash de Linux e iniciemos manualmente el servicio SSH.

Permitir iniciar el servicio SSH sin password

  • Editar los permisos de /etc/sudoers con visudo:
$ sudo visudo
  • Añadir la siguiente línea al final del archivo /etc/sudoers para tener permisos de iniciar el servicio de SSH:
%sudo ALL=NOPASSWD: /etc/init.d/ssh start

Note

Otras opciones de permisos en /etc/sudoers:

# Start/Stop scripts for ssh service
%sudo ALL=NOPASSWD: /etc/init.d/ssh

# service command
%sudo ALL=NOPASSWD: /usr/sbin/service

# ssh command
%sudo ALL=NOPASSWD: /usr/bin/ssh

# sshd command
%sudo ALL=NOPASSWD: /usr/sbin/sshd

Crear una nueva tarea en el Programador de tareas de Windows

  • Abrir el programa Programador de tareas:
../../../_images/windows_search.png

Búsqueda de Windows: Programador de tareas

  • En el Programador de tareas, seleccionar la opción Crear tarea básica…:
../../../_images/programador_de_tareas.png

Búsqueda de Windows: Programador de tareas

  • Pasos para la creación de una nueva tarea:
  1. Dar un Nombre y Descripción a la nueva tarea:
../../../_images/nueva_tarea1.png

Dar un Nombre y Descripción a la tarea

  1. Elegir como desencadenante de la acción Al iniciar sesión:
../../../_images/nueva_tarea2.png

Desencadenador de tarea: Al iniciar sesión

  1. Elegir como acción que realizará la tarea Iniciar un programa:
../../../_images/nueva_tarea3.png

Acción de la tarea: Iniciar un programa

  1. El programa a ejecutarse será el bash de WSL y le pasamos como argumento el comando a ejecutar:
  • Programa o script: C:\Windows\System32\bash.exe
  • Argumentos: -c "sudo /etc/init.d/ssh start"
../../../_images/nueva_tarea4.png

Programa a ejecutar con sus argumentos

  1. Revisar la configuración de la tarea y clic en Finalizar:
../../../_images/nueva_tarea5.png

Revisar el resumen de la tarea

  1. En la barra lateral izquierda, escogemos la opción Biblioteca del Programador de tareas y podremos ver listada nuestra nueva tarea:
../../../_images/nueva_tarea6.png

Nueva tarea agregada a la Biblioteca

Comprobar funcionamiento

Para comprobar que se está ejecutando el servicio de SSH de WSL al iniciar el sistema de Windows realizaremos los siguientes pasos:

  1. Reiniciar nuestro sistema de Windows
  2. Desde un equipo remoto haremos conexión SSH al usuario, IP y puerto pertenecientes al WSL:
ssh mogago@192.168.1.8 -p 2222
mogago@192.168.1.8 s password:

Si la conexión por SSH al equipo remoto ha sido exitosa, hemos configurado correctamente la tarea.