-
卸载现有的SSH服务(如果有)
apt remove openssh-server
-
重新安装SSH服务
apt install openssh-server
-
编辑SSH配置文件
打开/etc/ssh/sshd_config
文件,并进行以下修改:- 设置SSH服务的监听端口,例如:
Port 2222
- 允许使用用户名和密码登录,设置:
PasswordAuthentication yes
- 如果需要,允许远程root用户登录,设置:
PermitRootLogin yes
保存并退出编辑器。
- 设置SSH服务的监听端口,例如:
-
重启SSH服务
service ssh restart
-
设置开机自启动
在/etc/init.wsl
文件中添加:service ssh start
在Windows上配置端口转发和防火墙
-
查看WSL的IP地址
首先,安装net-tools
:apt install net-tools
然后,运行
ifconfig
查看WSL的IP地址。 -
设置端口转发
打开PowerShell并运行以下命令:netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2222 connectaddress=[WSL_IP] connectport=2222
将
[WSL_IP]
替换为你从ifconfig
获取的WSL IP地址。 -
配置Windows防火墙
在PowerShell中运行:netsh advfirewall firewall add rule name=WSL2 dir=in action=allow protocol=TCP localport=2222
测试连接
-
本地连接测试
在PowerShell中运行:ssh root@localhost -p 2222
这应该允许你通过SSH连接到本地WSL实例。
-
远程连接测试
使用另一台机器(例如,你的Mac电脑)尝试SSH连接到你的Windows机器的IP地址和指定端口:ssh username@Windows_IP -p 2222
按照这些步骤,你应该能在WSL上设置SSH服务,并能从其他机器进行远程连接。如果你遇到任何问题,可能需要检查网络和防火墙设置。