93

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

Кто-нибудь смог успешно это сделать?

5 ответов5

112

Я получил это на работу; вот как.

Деинсталлировал 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.

27

Поскольку реализация Windows не предоставляет chroot, вам нужно изменить /etc /ssh /sshd_config

UsePrivilegeSeparation no

Также вам нужно будет создать пользователя с помощью команды useradd или около того.

21

Ответы вышеупомянутых комитетов были великолепны. Спасибо вам за них. И хотя они подошли очень близко, у меня все еще было закрытое соединение из-за проблем 127.0.0.1 .

Я нашел и добавил дополнительные шаги из этого поста, которые заставили меня преодолеть горб. В частности, начав сначала и добавив это в качестве начального / первого шага (обратите внимание на спецификатор --purge ), наконец, решил мою вариацию этой проблемы:

sudo apt-get remove --purge openssh-server
sudo apt-get install openssh-server
sudo vi /etc/ssh/sshd_config # Change Port from 22 to 2222 (Just in case MS-Windows is using port 22; which, by the way, SSH on MS-Windows can be disabled if you want to use port 22).
sudo service ssh --full-restart

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

4

Я сделал все, как предложил Мастер Азазель, и у меня возникла проблема. Когда я подключился к порту 22 меня попросили ввести пароль, но пароль, который я установил в подсистеме Linux, не работал.

Решение № 1:
измените порт SSH в /etc/ssh/sshd_config и перезапустите сервер SSH в подсистеме

Решение № 2:
отключите / остановите "SSH Server Broker Services" в панели управления службами Windows и перезапустите SSH-сервер в подсистеме.

2

Причина, почему вы не можете ssh к нему, показана в журнале с сервера:

chroot("/var/run/sshd"): функция не реализована [preauth]

Похоже, что в подсистеме Linux не реализована chroot, а ssh-серверу это необходимо, поэтому соединение не разрешено.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .