Изоляция дистрибутива Linux (Ubuntu 18.04 и 20.04) в wsl

Изоляция дистрибутива Linux (Ubuntu 18.04 и 20.04) в wsl

В Windows 10 я установил 2 типа дистрибутивов Linux: Ubuntu 18.04 и Ubuntu 20.04 с использованием WSL. Я хочу настроить 20.04 для порта ssh 22, а 18.04 для порта ssh 2222. Повлияют ли эти изменения на какой-либо дистрибутив?

Когда мы устанавливаем эти дистрибутивы, они изолированы или будут влиять друг на друга?

решение1

Вы можете изменять порт SSH столько раз, сколько захотите, на любой из ваших систем (или на обеих). Это не окажет никакого влияния; ваши системы будут работать нормально с измененными настройками порта.

SSH длятвойвзаимодействие с системой. Ни один внутренний процесс его не использует. Стандартная установка Ubuntu Desktop вообще не имеет сервера SSH.

решение2

Ну, есть "простой ответ", который отвечает на ваш вопрос, но, вероятно, не очень вам поможет. А есть "что вам действительно нужно сделать, чтобы запустить SSH-сервер на WSL".

Простой ответ, как уже сказали другие, — каждый экземпляр может управлять собственным SSH-сервером в относительной изоляции.

Более длинный ответ... этосложный. Запуск сервера SSH на WSL — это одно. На самом деле возможность удаленного подключения к нему — это совсем другое. Вам придется беспокоиться о переадресации портов, брандмауэрах и запуске служб (не то, с чем WSL справляется хорошо в отсутствие systemd).

Во-первых, было бы полезно узнать ваши варианты использования ssh в WSL.

Если вы просто хотите получить удаленный доступ к своим экземплярам, ​​то я считаю, что проще всего простоустановить сервер OpenSSH для Windows 10на самом хосте. После этого единственная реальная настройка, которую вам нужно сделать, это открыть порт 22 на брандмауэре Windows. И однострочный код для этого включен в инструкции Microsoft, ссылка на которые приведена выше для установки.

Установив сервер OpenSSH в Windows, вы можете использовать:

ssh -t <user@windows_host_or_ip> wsl -d <wsl_instance_name>

... чтобы добраться до вашего экземпляра WSL. -d <wsl_instance_name>Для вашего экземпляра WSL по умолчанию это не требуется.

Но, возможно, у вас есть какая-то другая причина, по которой вам нужен доступ SSH к экземплярам WSL. Например, я использую Ansible для подключения и настройки некоторых из моих экземпляров WSL на нескольких машинах. Для этого требуется, чтобы для каждого экземпляра был запущен «настоящий» сервер SSH.

В этом случае вам необходимо найти решения для:

  • Переадресация портов с хоста Windows на экземпляры WSL2 (WSL1 не требует переадресации портов, поскольку его сеть работает в режиме «моста» с сетевым интерфейсом Windows).
  • Запуск sshdслужбы в каждом экземпляре (это не автоматический процесс)

По моему мнению, самым простым решением здесь по-прежнему является установка сервера Windows OpenSSH на порт 22, а затем настройка каждого экземпляра WSL с его собственным сервером OpenSSH, но (конечно) на разных портах. Затем вы можете использовать хост Windows как "jumphost" для доступа к экземплярам внутри него. Подробные инструкции для этого можно найти вэтот ответна Суперпользователе.

Это также решает проблему «запуска sshdв WSL problem, because you can use a syntax similar to the earlier one I mentioned (using thewsl» командычерезWindows ssh) для удаленного запуска службы. Другими словами, пока сервер Windows SSH настроен на автоматический запуск, вы можете использовать его для запуска любого из серверов SSH экземпляров WSL. Подробности, опять же, можно найти в этом ответе.

Также стоит прочитатьэтот ответна странице «Суперпользователь» относительно общих сценариев переадресации портов в WSL.

Связанный контент