2016-08-09 14:52:46 +0000 2016-08-09 14:52:46 +0000
106
106

如何通过SSH进入 "Bash on Ubuntu on Windows 10"?

我有Windows 10周年纪念版,安装了 “Bash on Ubuntu on Windows",并且可以使用。我希望能够通过SSH进入这个Ubuntu实例,但是尽管我安装并配置了openssh-server(并且在2200端口监听),当我尝试SSH到 "localhost:2200 "时,它告诉我 "服务器意外关闭网络连接"。

有谁能成功完成这个任务?

答案 (5)

125
125
125
2016-08-16 14:02:58 +0000

我把它弄好了,下面是方法。

卸载ssh-server,重新安装,并确保它以

sudo service ssh --full-restart

确保你关闭了root访问,并在配置文件中添加了另一个用户。

我能够按照预期连接到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 并通过设置PermitRootLogin no 4.禁止root登录。然后在其下面添加一行字:

  1. 通过添加/修改:UsePrivilegeSeparation no

6.禁用特权分离。sudo service ssh --full-restart

  1. 使用像PuTTY这样的ssh客户端从Windows连接到你的Linux子系统。
28
28
28
2017-05-16 02:58:48 +0000

上面的答案很接近,但我还是遇到了Connection closed by 127.0.0.1的问题。

从头开始,用sshd选项删除--purge包(如下图所示),解决了我的这个问题的变种:

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.

我希望这能帮助到你。=:)

27
27
27
2016-08-09 20:45:01 +0000

由于windows的实现不提供chroot,你需要修改/etc/ssh/sshd/config

UsePrivilegeSeparation no

同时你需要使用useradd命令创建一个用户。

5
5
5
2016-11-17 09:57:41 +0000

我按照Azazel大师的建议做了一切,却出现了问题。当我连接到22端口时,我被要求输入密码,但我在Linux子系统中设置的密码并没有用。

解决方法1: 更改/etc/ssh/sshd_config的SSH端口,并重新启动子系统中的SSH服务器

解决方法2: 禁用/停止Windows的服务控制面板中的 “SSH服务器经纪服务",并重新启动子系统中的SSH服务器。

2
2
2
2016-08-09 16:46:49 +0000

你无法ssh到它的原因在服务器的日志中显示。

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

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