如何通过 SSH 进入“Windows 10 上的 Ubuntu 上的 Bash”?

如何通过 SSH 进入“Windows 10 上的 Ubuntu 上的 Bash”?

我安装了 Windows 10 周年纪念版,其中安装了“Windows 上的 Ubuntu 上的 Bash”,并且运行正常。我希望能够通过 SSH 进入这个 Ubuntu 实例,但尽管我已安装并配置了 openssh-server(并监听端口 2200),当我尝试通过 ssh 进入“localhost:2200”时,系统提示“服务器意外关闭了网络连接”。

有谁能够成功完成这一任务?

在此处输入图片描述

答案1

我让它工作了;方法如下。

卸载 ssh-server,重新安装并确保它已启动

sudo service ssh --full-restart

确保您关闭了根访问权限并在配置文件中添加了另一个用户。

我能够按预期连接到 127.0.0.1:22 上的子系统。希望这对您有所帮助。

这是屏幕截图。

  1. sudo apt-get purge openssh-server
  2. sudo apt-get install openssh-server
  3. sudo nano /etc/ssh/sshd_config并通过设置禁止 root 登录PermitRootLogin no
  4. 然后在其下方添加一行:

    AllowUsers yourusername

    如果您想使用密码登录,请确保PasswordAuthentication设置为。yes

  5. 通过添加/修改来禁用特权分离:UsePrivilegeSeparation no

  6. sudo service ssh --full-restart

  7. 使用 PuTTY 等 ssh 客户端从 Windows 连接到您的 Linux 子系统。

答案2

上述答案已经很接近了,但我仍然有一个Connection closed by 127.0.0.1问题。

因此,从头开始并--purge在删除sshd包时提供选项(如下所示),解决了这个问题的变化:

user$ sudo apt-get remove --purge openssh-server # First remove sshd with --purge option.
user$ sudo apt-get install openssh-server
user$ sudo vi /etc/ssh/sshd_config # **See note below.
user$ sudo service ssh --full-restart

# ** Change Port from 22 to 2222. (Just in case MS-Windows is using port 22).
#    Alternatively, you can disable MS-Windows' native SSH service if you 
#    wish to use port 22.

答案3

由于 Windows 实现不提供 chroot,因此您需要修改 /etc/ssh/sshd_config

UsePrivilegeSeparation no

您还需要使用 useradd 命令等来创建用户。

答案4

无法 ssh 连接的原因在服务器日志中显示:

chroot(“/var/run/sshd”):功能未实现[preauth]

Linux 子系统似乎没有实现 chroot 而 ssh 服务器需要它,因此不允许连接。

相关内容