WSL 中启动 ssh 服务
sudo apt install openssh-server
# 修改配置文件
sudo vim /etc/ssh/sshd_config
# 主要设置这两个参数
Port 22
PasswordAuthentication yes
AllowUsers username
# 然后启动ssh
sudo systemctl start ssh # 开启ssh服务
sudo systemctl enable ssh # 设置ssh服务开机自启
# 如果 systemctl start 报错用以下方法解决
# 先更新wsl到最新版
wsl --update
# 添加下面内容到 /etc/wsl.conf
vim /etc/wsl.conf
[boot]
systemd=true
# 然后到powershell中重启wsl
wsl --shutdown
设置开启端口转发
windows默认只会将WSL的端口转发到local,所以在localhost上可以登陆ssh,如果想远程访问还需要配置端口转发。
在PowerShell中用管理员权限打开,执行下面的命令,将内网的22端口映射到0.0.0.0的2222端口。
# 添加端口转发
netsh interface portproxy add v4tov4 listenport=2222 listenaddress=0.0.0.0 connectaddress=127.0.0.1 connectport=22
netsh interface portproxy add v4tov4 listenport=2222 listenaddress=0.0.0.0 connectaddress=127.0.0.1 connectport=22
# 删除端口转发
netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=2222
# 查看windows宿主机端口转发情况
netsh interface portproxy show all
# 开启windows防火墙端口规则
netsh advfirewall firewall add rule name=WSL2 dir=in action=allow protocol=TCP localport=2222