先把win的ssh服务关了,因为Ubuntu20.04子系统自带的ssh服务无法连接,需卸载后重新安装。
卸载ssh服务
apt remove openssh-server
重装ssh服务
apt install openssh-server
修改配置
# /etc/ssh/sshd_config Port 22 ListenAddress 0.0.0.0 PermitRootLogin yes PasswordAuthentication yes
重启服务
service ssh restart
测试
ssh root@localhost
设置SSH自启动
# /etc/init.wsl service docker start
编辑win注册表
HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun
下添加一个REG_SZ 类型的值,名称自定义,值为:
mshta vbscript:CreateObject(“Wscript.Shell”).Run(“wsl -d Ubuntu-20.04 -u root bash /etc/init.wsl”,0,TRUE)(window.close)
设置端口转发
wsl 子系统的ip并不是和Win公用的内网ip,所以需要将Win收到的请求转发到wsl子系统中
在linux子系统下ifconfig查看ip,在powershell中执行:
# ip用wsl子系统的ip替换,注意去掉中括号 netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=22 connectaddress=[IP] connectport=22
添加防火墙入站规则
netsh advfirewall firewall add rule name=WSL2 dir=in action=allow protocol=TCP localport=22



