WSL2 Ubuntu 22.04 开启ssh并设置自动启动

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
Copyright @lionared