我尝试从我的 LAN 设备(手机、笔记本电脑甚至同一台电脑)通过 ssh 进入 bash.exe,如下所示微软的指南将 OpenSSH 的默认 shell 更改为 bash.exe。在这种情况下,Bash 应该启动“wsl -d YOURDEFAULTDISTRO”,如果我在本地计算机上运行它,它就会启动。但是当我 ssh 进入它时,我得到:
??? ????? ?????? ? ???????? ??? ?????? ??? ?? ???????
Connection to <my_ip> closed.
我可以正常 ssh 进入 powershell,没有任何问题。我的 Windows 是用希腊语设置的,也许这就是我得到问号的原因?
答案1
您可以在博客中找到更好的教程
如何从外部机器通过 SSH 进入 Windows 10 上的 Bash 和 WSL2。
这篇博文使用 Windows 的 OpenSSH 并通过 Windows 进行身份验证,然后运行 WSL2。WSL2 启动,使用 bash,Windows 处理 TCP 流量。
总结一下这篇文章:
通过管理 PowerShell 在 Windows 中启用 OpenSSH 服务器:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
您可以使用以下方法验证它是否有效:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
设置默认 shell:
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\WINDOWS\System32\bash.exe" -PropertyType String -Force
答案2
我遇到了同样的问题。我这样做此链接并进行设置New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Program Files\WSL\wsl.exe" -PropertyType String -Force
,然后一切正常。希望这对你有用!