윈도우가 시작되었을 때 기본적으로 wsl ssh 서비스는 자동으로 시작되지 않는다.

이를 스크립트를 통해 자동으로 시작시키도록 한다.

Win + R 키를 눌러 shell:startup 명령어 실행시키면 파일 탐색기가 실행되며 시작 프로그램 이라는 폴더가 나온다.

해당 폴더에 wsl_connect.bat 파일 생성

아래 내용 복사

(관리자권한을 획득한 뒤 파워쉘 및 bash 직접실행을 통해 ssh 및 기타 서비스를 실행시킴.)

@echo off
set uaccheck=0

:: Get Admin Permission

:CheckUAC
>nul 2>&1 "%SYSTEMROOT%\\system32\\cacls.exe" "%SYSTEMROOT%\\system32\\config\\system"
if '%errorlevel%' NEQ '0' (
    goto UACAccess
) else ( goto Done )

:UACAccess
echo "Request to get admin permission"
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\\uac_get_admin.vbs"
set params = %*:"=""
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\\uac_get_admin.vbs"
"%temp%\\uac_get_admin.vbs"
del "%temp%\\uac_get_admin.vbs"
exit /b

:Done
echo "Success to get admin permission"
echo.

:: WSL port forwarding powershell script
powershell.exe C:\\Users\\HOME_NAME\\AppData\\wsl_connect.ps1

:: bash service start
"C:\\Windows\\System32\\bash.exe" -c "sudo service ssh start"
"C:\\Windows\\System32\\bash.exe" -c "sudo service nginx start"
"C:\\Windows\\System32\\bash.exe" -c "sudo service php7.2-fpm start"

exit /b

파워쉘 스크립트를

Win + R 키를 눌러 appdata 명령어 실행시키면 파일 탐색기가 실행되며 AppData 폴더가 나온다.

해당 폴더에 wsl_connect.ps1 파일 생성

해당 파일에 아래 내용 복사

열고싶은 포트를 $ports 변수의 리스트에 추가한다.