wsl2里的默认用户名为user
- 首先创建一个脚本文件 /home/user/start_service.sh 用来开启cron服务和ssh服务
service cron start
service ssh start
2. chmod +x start_service.sh
3. sudo visudo
#添加以下内容 这样执行 sudo ./start_service.sh的时候不用输入密码
user ALL=(root) NOPASSWD: /home/user/start_service.sh
4. 在windows10里 点开始 输入task
任务计划程序库 --> 创建任务
常规:start_service 选择使用最高权限运行
触发器:新建>>登录时>>确定
操作:新建>>启动程序>>程序或脚本(C:\Windows\System32\bash.exe)>>参加参数(-c "sudo ~/start_service.sh")
5. 新建文件C:\wslssh.ps1
$wslip = bash.exe -c "ifconfig eth0 | grep 'inet '"
$found = $wslip -match '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}';
if( $found ){
$wslip = $matches[0];
} else{
echo "The Script Exited, the ip address of WSL 2 cannot be found";
exit;
}
echo "wslip:$wslip";
set-executionpolicy remotesigned;
iex "netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=22 connectaddress=$wslip connectport=22";
6.
在windows10里
任务计划程序库 --> 创建任务
常规:wslfirewall 选择使用最高权限运行
触发器:新建>>登录时>>确定
操作:新建>>启动程序>>程序或脚本(C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe)>>参加参数(-command ". 'C:\wslssh.ps1’”)