答案1
我让它工作了;方法如下。
卸载 ssh-server,重新安装并确保它已启动
sudo service ssh --full-restart
确保您关闭了根访问权限并在配置文件中添加了另一个用户。
我能够按预期连接到 127.0.0.1:22 上的子系统。希望这对您有所帮助。
sudo apt-get purge openssh-server
sudo apt-get install openssh-server
sudo nano /etc/ssh/sshd_config
并通过设置禁止 root 登录PermitRootLogin no
然后在其下方添加一行:
AllowUsers yourusername
如果您想使用密码登录,请确保
PasswordAuthentication
设置为。yes
通过添加/修改来禁用特权分离:
UsePrivilegeSeparation no
sudo service ssh --full-restart
使用 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 服务器需要它,因此不允许连接。