开启ssh
- 在wsl安装ssh
apt install openssh-server
- 修改配置
vi /etc/ssh/sshd_config
Port 2222
ListenAddress 0.0.0.0
PermitRootLogin yes
PubkeyAuthentication yes
- 查看wsl的网络地址
# 在wsl
apt install net-tools
ifconfig
# 在windows
wsl -- hostname -I
- 在windows通过ssh连接wsl
ssh root@x.x.x.x -p 2222
开启windows到wsl的端口映射
- 在Windows开启端口映射
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2222 connectaddress=[IP] connectport=[PORT] protocol=TCP
# 删除转换端口
netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=2222
# 查看转发规则
netsh interface portproxy show v4tov4
- 开启Windows的防火墙,运气其他机器直接访问wsl
netsh advfirewall firewall add rule name=WSL2 dir=in action=allow protocol=TCP localport=2222
- 可以在Windows中连接wsl的ssh
如果遇到了==WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!==可以使用以下命令先清除密钥
ssh-keygen -R XX.XX.XX.XX
[其中xx.xx.xx.xx是IP地址]。或者直接去~/.ssh/known_hosts
把对应公钥删了
ssh root@localhost -p 2222
ssh设置开机自启
vi /etc/init.wsl
# 加入配置
service ssh start
设置windows开机自启wsl
- 打开开机自启目录:
win+R
输入shell:startup
- 创建
wsl-start.vbs
文件
Set ws = WScript.CreateObject("WScript.Shell")
ws.run "wsl", vbhide