Поскольку вы, кажется, устранили свою проблему с ssh, позвольте мне предложить, чтобы ваша конечная цель (ssh в WSL из VSCode) могла быть лучше достигнута с помощью пакета расширений Microsoft Remote Development, который включает несколько расширений. Хотя похоже, что вы рассматриваете возможность использования расширения Remote - SSH, вы также можете использовать расширение Remote - WSL напрямую.
После установки пакета расширений или расширения WSL напрямую просто откройте свой экземпляр WSL, cd
в каталог с вашим кодом, а затем code .
(включая точку). Это откроет VSCode и установит прокладку в экземпляр WSL, которая обеспечит связь между ними.
Дополнительные сведения см. В документации Microsoft.
Кроме того, по теме вашего исходного вопроса вы сказали, что отредактировали sshd_config, чтобы разрешить аутентификацию по паролю (я не думаю, что изменение ChallengeResponseAuthentication было необходимым). Это один из возможных вариантов, но в конечном итоге я бы рекомендовал сгенерировать пару ключей SSH, скопировать закрытый ключ в нечто вроде C:\Users\yourid\.ssh\id_rsa
и использовать его вместо пароля для входа.
И вы упомянули в своем исходном вопросе, что вам не удалось получить доступ к SSH через общедоступный порт. Это связано с тем, что WSL2 не выполняет NAT, поэтому он также не будет доступен со второго компьютера без (значительных) дополнительных усилий (ручная переадресация портов с Windows на WSL, которая должна быть сброшена при перезагрузке, поскольку WSL адрес интерфейса изменится).
Как вы обнаружили, адрес интерфейса WSL будет работать, но помните, что он будет меняться при каждой перезагрузке Windows (технически, я думаю, каждый раз, когда подсистема WSL выключается и перезапускается). ИМХО, лучше использовать 127.0.0.1 или localhost.
Но на самом деле я предпочитаю удаленный доступ к WSL - это установить OpenSSH в Windows 10, порт 22. Затем вы можете просто сделать что-то вроде ssh -t [email protected] wsl
, чтобы получить доступ к экземпляру WSL. Вы можете сделать это даже при наличии нескольких экземпляров WSL на вашем компьютере с ssh -t [email protected] wsl -d WSLInstanceName
.
Если вы, конечно, используете эту технику и по-прежнему хотите запустить SSH-сервер в экземпляре WSL, вам нужно будет использовать другой порт. Но я действительно думаю, что вам в любом случае следует делать это при использовании SSH под WSL. В противном случае вы, скорее всего, в какой-то момент развернете второй экземпляр WSL и все равно столкнетесь с конфликтами портов.
Обратной стороной является то, что взлом Windows OpenSSH - ›WSL не позволит вам запускать такие вещи, как VSCode через SSH, но он обеспечивает сверхпростой доступ к WSL через SSH, а также работает удаленно (если вам это когда-нибудь понадобится).
person
NotTheDr01ds
schedule
10.12.2020