无法在 Windows 11 上通过 SSH 运行 WSL2

无法在 Windows 11 上通过 SSH 运行 WSL2

我有两台机器;一台台式机和一台笔记本电脑。台式机在 Windows 端运行 WSL2 和 OpenSSH 服务器。我能够毫无问题地从笔记本电脑连接到 SSH 服务器,但无法通过 SSH 连接启动 WSL。当我运行wsl或时bash,会打印以下消息:The file cannot be accessed by the system。请注意,我可以直接在桌面上从终端启动 WSL(但如果我从桌面通过 SSH 进入桌面则不行)。

这太奇怪了,我不知道问题出在哪里。我尝试搜索过类似的问题,但没有找到任何答案。

答案1

简短回答:现在,该问题已在 WSL 2.0.0 预发布应用程序中(大部分)得到修复。

背景

这是在原始 WSL1 和 WSL2 中作为 Windows 功能实现的。

然后当 WSL 成为可用时,它就不起作用了应用

现在,从 WSL 2.0.0 预版本开始,这一切再次成为可能。

更新至 2.0.0 预发布版本

如果您想更新,请首先确保您使用的是最新版本的 WSL。从 PowerShell:

wsl --version

如果它返回版本信息,那么你就可以开始了。如果没有,你需要从Microsoft Store

接下来运行:

wsl --update --pre-release

更新后,建议重新启动。

在 2.0.0 中通过 SSH 运行 WSL

目前情况略有不同。要从 SSH 运行 WSL(使用 2.0.0),您需要使用:

从 PowerShell:

& 'C:\Program Files\WSL\wsl.exe'

从CMD:

"c:\Program Files\WSL\wsl.exe"

请注意,WSL 开发团队已声明他们正在致力于为基地wsl.exe指挥部提供此功能。

答案2

仍然可以从远程机器访问 WSL2 的解决方案是在 wsl 中设置 ssh 并将客户端的公钥添加到 wsl,然后使用 ssh ProxyJump 选项:

ssh -J <windows_host_username>@<ip_windows_host> <wsl_username>@localhost

相关内容