Isa*_*sak 24 windows ssh macos wsl2
我有两台机器;一台台式机和一台笔记本电脑。桌面运行 WSL2 和 Windows 端的 OpenSSH 服务器。我可以从笔记本电脑连接到 SSH 服务器,没有任何问题,但无法通过 SSH 连接启动 WSL。当我运行wsl或bash打印以下消息时:The file cannot be accessed by the system. 请注意,我可以直接从桌面上的终端启动 WSL(但如果我从桌面通过 SSH 进入桌面则不能)。
这太奇怪了,我不知道可能出了什么问题。我曾尝试寻找类似的问题,但没有找到任何东西。
Not*_*1ds 27
简短回答:现在(大部分)已在 WSL 2.0.0 预发布应用程序中修复此问题。
这是作为 Windows 功能提供的原始 WSL1 和 WSL2 中的功能。
然后当 WSL 作为应用程序可用时,它就不起作用了。
现在,可以再次从 WSL 2.0.0 预发布版开始。
如果您想更新,请首先确保您使用的是最新版本的 WSL。来自 PowerShell:
wsl --version
Run Code Online (Sandbox Code Playgroud)
如果它返回版本信息,那么你就可以开始了。如果没有,您需要从Microsoft Store安装 WSL 。
接下来,运行:
wsl --update --pre-release
Run Code Online (Sandbox Code Playgroud)
更新后,建议重新启动。
目前情况有些不同。要从 SSH 运行 WSL(使用 2.0.0),您需要使用:
来自 PowerShell:
& 'C:\Program Files\WSL\wsl.exe'
Run Code Online (Sandbox Code Playgroud)
来自命令:
"c:\Program Files\WSL\wsl.exe"
Run Code Online (Sandbox Code Playgroud)
请注意,WSL 开发团队已表示他们正在努力为基本wsl.exe命令提供此功能。
小智 9
仍然从远程计算机访问 WSL2 的解决方案是在 wsl 中设置 ssh 并将客户端的公钥添加到 wsl,然后使用 ssh ProxyJump 选项:
ssh -J <windows_host_username>@<ip_windows_host> <wsl_username>@localhost
Run Code Online (Sandbox Code Playgroud)