Uruchamiamy PowerShell jako administrator i wydajemy polecenie:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Teraz trzeba zrestartować komputer.

Pobieramy dystrybucję z której chcemy korzystać, można to zrobić na trzy sposoby:
Invoke-WebRequest -Uri https://aka.ms/wsl-debian-gnulinux -OutFile Debian.appx -UseBasicParsingRozpakowujemy archiwum z pobraną dystrybucją:
Rename-Item .\Debian.Appx .\Debian.zip
Expand-Archive .\Debian.zip .\Debian


Następnie instalujemy:
cd .\Debian\
.\debian.exe

Po zakończonej instalacji zostaniemy poproszeni o podanie nazwy użytkownika którego konto zostanie utworzone w WSL a następnie konieczne będzie ustalenie dla niego hasła. Na tym etapie WSL powinien już działać.


Warto dodać do domyślnej ścieżki katalog środowiska WSL:
$userenv = [System.Environment]::GetEnvironmentVariable("Path", "User")
[System.Environment]::SetEnvironmentVariable("PATH", $userenv + ";C:\Users\Administrator\Debian", "User")

Instalujemy serwer ssh i rsync po zalogowaniu się do WSL:
sudo apt-get install openssh-server

By móc się tymczasowo zalogować w pliku /etc/ssh/sshd_config dodajemy linie:
PasswordAuthentication yes
AllowUsers USER
Ponownie uruchamiamy SSH:
service ssh restart
Zezwalamy na start serwera SSH bez hasła edytując plik /etc/sudoers
Po linii %sudo ALL=(ALL:ALL) ALL
dodajemy linie:
%sudo ALL=(ALL) NOPASSWD:/usr/sbin/sshd
%sudo ALL=(ALL) NOPASSWD:/etc/init.d/ssh
Tworzymy w harmonogramie zadań nowe zadanie podstawowe.
Dodajemy stosowne opisy a następnie zaznaczamy, że zdanie ma być uruchamiane przy każdym włączeniu komputera.
Jako akcję wybieramy uruchomienie programu
Polecenie które system ma wykonywać to
%windir%\System32\bash.exe
a jego argumentem będzie
-c "sudo /etc/init.d/ssh start"
Zaznaczamy, że zdanie ma być wykonywane niezależnie od tego czy użytkownik się loguje czy nie.
W podsumowaniu sprawdzamy czy nie wystąpiła żadna pomyłka.
Jeśli wszystko się zgadza to zapisujemy zadanie i przystępujemy do sprawdzenia czy zadanie działa poprawnie. Logujemy się do powłoki WSL i wydajemy polecenie
sudo service ssh status
Jeżeli SSH działa wyłączamy usługę poleceniem
sudo service ssh stop
Następnie w harmonogramie zadań wywołujemy nowo utworzone zadanie.
Uruchamiamy Zaporę Windows a w niej ustawienia zaawansowane.
W połączeniach przychodzących dodajemy nową regułę.
Tworzymy regułę dla portu.
Wybieramy TCP i port 22
Dopuszczamy połączenie
Ale tylko dla zaufanych sieci
Na koniec dodajemy nazwę i opis dla nowej reguły.