Как я могу 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, как и ожидалось. Я надеюсь, что это поможет вам.
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
Подключитесь к вашей подсистеме 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-серверу это необходимо, поэтому соединение не разрешено.