问题描述:
本人Windows 11 家庭中文版系统从Microsoft Store中安装Ubuntu系统
WSL2的镜像网络模式:
安装docs.trae.ai/docs/ssh-re… 程序下面错误
初步定位:
ping 192.168.3.26 ip没有问题
telnet 192.168.3.26 22
正在连接192.168.3.26...无法打开到主机的连接。 在端口 22: 连接失败
解决步骤:
- Win11将WSL做SSH服务器,实现通过局域网SSH远程连接到WSL
sudo apt install openssh-server
sudo vim/etc/ssh/sshd_config
取消注释 #Port 22 行以指定SSH端口(默认为22)。
取消注释 #PasswordAuthentication yes 行以允许密码认证。
# 启动ssh密钥登录
RSAAuthentication yes
PubkeyAuthentication yes
sudo service ssh start
- Mirror模式下WSL2的SSH远程连接
WSL2 环境信息:
首先,在C://User//.wslconfig文件中,通过以下方式进行设置就会得到镜像模式的WSL。
[wsl2]
networkingMode=mirrored
[experimental]
hostAddressLoopback=false
| hostAddressLoopback** | 布尔 | FALSE | 仅当 wsl2.networkingMode 设置为 mirrored 时才适用。 如果设置为 True,将会允许容器通过分配给主机的 IP 地址连接到主机,或允许主机通过此方式连接到容器。 始终可以使用 127.0.0.1 环回地址,此选项也允许使用所有额外分配的本地 IP 地址。 仅支持分配给主机的 IPv4 地址。 |
|---|
如果不开启hostAddressLoopback 则无法在镜像模式下从外部访问到wsl。包括在windows WSL主机中,也同样无法依靠访问到wsl。但是如果将修改为localhost则可行。
优势
-
IPv6 支持
-
使用
localhost地址127.0.0.1从 Linux 内部连接到 Windows 服务器。 -
不支持 IPv6
localhost地址::1 -
改进了 VPN 的网络兼容性
-
多播支持
-
直接从局域网 (LAN) 连接到 WSL
通过localhost可以直接访问
设置 SSH 通过密钥登录
cd .ssh
touch authorized_keys
chmod 600 authorized_keys
window测试连接wsl2通过
ssh money@127.0.0.1 //连接到window11 安装的 wsl主机 Ubuntu 20.04+
结果: trae配置
Host 127.0.0.1
HostName 127.0.0.1
User money
ForwardAgent yes
[experimental] hostAddressLoopback=true
结果 连接不上