Instalacja WSL na Windows 10 wraz z serwerem ssh

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:

  • bezpośrednio w Microsoft Store
  • pobierając paczkę ręcznie https://aka.ms/wsl-debian-gnulinux
  • zlecając pobieranie z PowerShella
    Invoke-WebRequest -Uri https://aka.ms/wsl-debian-gnulinux -OutFile Debian.appx -UseBasicParsing

Rozpakowujemy 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

Autostart SSH

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.

Otwieranie portu dla SSH

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.

Poprzedni wpis Następny wpis