Устранение неполадок, связанных с истечением времени ожидания подключения ssh в подсистеме Linux для Windows

Я использую Windows 10 Education, и мне нужно настроить удаленный доступ.

Мне удалось установить WSL2, Ubuntu 20.04, и я следовал этому руководству https://www.illuminiastudios.com/dev-diaries/ssh-on-windows-subsystem-for-linux/

Теперь я могу подключиться локально с помощью myusername @ Ipv4.

Но это не работает с другого рабочего стола: port22: Время ожидания подключения истекло. Я пробовал с двух компьютеров, подключенных к одной сети через VPN.

Я не знаю, как это отладить. Спасибо заранее за любую помощь.


person Sandra M    schedule 29.04.2021    source источник
comment
Вы подтвердили, что sshd действительно слушает 0.0.0.0, а не 127.0.0.1 или :: 1? Я думаю, это будет указано в / etc / ssh / sshd_config   -  person jishi    schedule 29.04.2021
comment
Да, и он слушал 127.0.0.1, поэтому я последовал совету jishi! (Благодарность)   -  person Sandra M    schedule 29.04.2021


Ответы (1)


Помимо неправильной настройки sshd, я думаю, что WSL и WSL2 только перенаправляют порты, прослушивающие локальный хост, что делает их недоступными для удаленных подключений (у меня было подобное обсуждение здесь) https://github.com/microsoft/WSL/обсуждений/4872#обсуждениеcomment-76626

Вы можете настроить netsh для настройки переадресации портов с 0.0.0.0 (все интерфейсы) на localhost для определенных портов, если это необходимо, но я не знаю синтаксиса наверху. Вы можете найти документацию по нему здесь:

https://docs.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-interface-portproxy.

Но сделаю небольшое предостережение. WSL2 будет иметь доступ к вашей файловой системе Windows, он не работает как обычная виртуализация. Если вы позволите другим людям войти в свою машину WSL2, они смогут читать и писать в вашу файловую систему до некоторой степени, что может быть не тем, что вам нужно, и доступ к ней через SSH редко бывает тем, что вам нужно.

person jishi    schedule 29.04.2021
comment
Спасибо, работает, я сделал - netsh interface portproxy add v4tov4 listenaddress = 0.0.0.0 listenport = 22 connectaddress = localhost connectport = 22 - и отключил брандмауэр Защитника Windows - person Sandra M; 29.04.2021