Как подключиться по SSH к «Bash на Ubuntu на Windows 10»?

Как подключиться по SSH к «Bash на Ubuntu на Windows 10»?

У меня Windows 10 Anniversary Edition с установленным и работающим "Bash on Ubuntu on Windows". Я хотел бы иметь возможность подключаться по SSH к этому экземпляру Ubuntu, но хотя у меня установлен и настроен openssh-server (и он прослушивает порт 2200), когда я пытаюсь подключиться по ssh к "localhost:2200", он сообщает мне "Сервер неожиданно закрыл сетевое соединение".

Удалось ли кому-нибудь успешно это осуществить?

введите описание изображения здесь

решение1

Я заставил это работать. Вот как.

Удалил ssh-сервер, переустановил его и убедился, что он запускается с помощью

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и запретить вход в систему root, установивPermitRootLogin no
  4. Затем добавьте под ним строку со следующим текстом:

    AllowUsers yourusername

    и убедитесь, PasswordAuthenticationчто установлено значение , yesесли вы хотите войти с помощью пароля.

  5. Отключите разделение привилегий, добавив/изменив:UsePrivilegeSeparation no

  6. sudo service ssh --full-restart

  7. Подключитесь к подсистеме Linux из Windows с помощью ssh-клиента, например PuTTY.

решение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 он необходим, поэтому соединение не разрешено.

Связанный контент