Как я могу SSH в "Bash на Ubuntu на Windows 10"?

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

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

5 ответов

Решение

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

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

Ответы вышеупомянутых комитетов были великолепны. Спасибо вам за них. И хотя они подошли очень близко, у меня все еще было закрытое соединение из-за проблем 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

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

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

UsePrivilegeSeparation no

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

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

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

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

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

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

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

Другие вопросы по тегам