Windows OpenSSH Server 可以通过 SSH 进入 powershell,但无法通过 ssh 进入 bash(WSL2 Ubuntu)问号错误

Windows OpenSSH Server 可以通过 SSH 进入 powershell,但无法通过 ssh 进入 bash(WSL2 Ubuntu)问号错误

我尝试从我的 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,然后一切正常。希望这对你有用!

相关内容