1. WSL2 Ubuntu 安装openssh-server
sudo apt update
sudo apt install openssh-server
2. WSL2 启用systemd
在/etc目录下新建wsl.conf配置文件,并编辑该配置文件
## ubuntu
sudo vi /etc/wsl.conf
输入内容
[boot]
systemd=true
然后按esc退出编辑模式,按两次shift保存退出
切换至windows,打开 Windows PowerShell(管理员),运行 wsl –shutdown 关闭wsl。
# 在 Windows PowerShell(管理员)中运行
## windows
wsl --shutdown
再重新打开 ubuntu, 使 wsl 彻底重新启动以便启用 systemd。然后在 wsl 中运行:
## ubuntu
systemctl enable ssh
systemctl start ssh
3. Windows 中开启 22 端口转发至 WSL2
## wsl ubuntu内查看ip
## ubuntu
ip addr
inet 172.28.31.51/20 brd 172.28.47.255 scope global eth0
## windows
## 先查看是否有22端口的转发
netsh interface portproxy show v4tov4
## 有的话删除
netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=22
## 然后添加22端口转发至wsl2, ip地址connectaddress=对应 ubuntu 内查看的 ip地址
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=22 connectaddress=172.28.31.51 connectport=22
至此,在windows主机上可以通过ssh登录wsl2 ubuntu了。
4. 局域网其他主机ssh登录WSL2
在windows主机上添加防火墙规则,使局域网其他主机可以访问ssh
## Windows PowerShell(管理员)中运行
netsh advfirewall firewall add rule name="WSL SSH" dir=in action=allow protocol=TCP localport=22