Как подключиться к виртуальной машине VirtualBox с помощью SSH

Как подключиться к виртуальной машине VirtualBox с помощью SSH


Хотите подключиться к виртуальной машине Linux в VirtualBox по SSH? Вот как это настроить, используя мостовую сеть или NAT с переадресацией портов.

VirtualBox является широко используемым инструментом виртуализации, который часто выбирают для запуска дистрибутивов Linux для тестирования в изолированной среде или для настройки сервера для конкретных задач.

Тем не менее, в какой-то момент вам может понадобиться войти через SSH в гостевую ВМ VirtualBox и вы обнаружите, что это не работает. Не волнуйтесь — это не большая проблема. Всё сводится к тому, как настроены сетевые параметры вашего VirtualBox. В этом руководстве я покажу вам, как быстро их настроить, чтобы вы могли включить доступ по SSH без проблем.

Я рассмотрю два простых подхода: один с использованием мостовой сети и другой с использованием настройки NAT по умолчанию с добавленным пробросом портов. Какой из них выбрать, действительно зависит от ваших предпочтений, но в любом случае вы получите доступ по SSH к вашей виртуальной машине. Итак, давайте начнем.

Убедитесь, что SSH работает на виртуальной машине гостя

Иногда, когда мы сосредоточены на конкретной проблеме, легко упустить из виду самый простой шаг — например, убедиться, что SSH-сервер действительно запущен на вашем виртуальной машине VirtualBox. Да, я знаю, вы, вероятно, уверены, что он уже работает, но никогда не бывает лишним перепроверить.

Наиболее дистро-независимый способ сделать это — использовать команду ниже. Просто войдите в вашу виртуальную машину и подтвердите, что вывод включает строку с «/usr/sbin/sshd.”

pgrep -a sshd

Убедитесь, что SSH работает на гостевой виртуальной машине VirtualBox.

Если вы видите результат, похожий на приведенный выше, отлично. Это означает, что SSH запущен и работает на вашей виртуальной машине VirtualBox. Конечно, вы также можете выполнить systemctl status ssh или systemctl status sshd — точное имя службы зависит от вашего дистрибутива — чтобы проверить то же самое.

Однако, если приведенные выше команды не показывают работу SSH (не возвращают ничего), вам нужно сначала установить и запустить его. Обсуждение этой настройки выходит за рамки этого руководства, поэтому проверьте документацию вашего дистрибутива для получения подробных шагов.

По умолчанию SSH прослушивает порт 22, и если вы не изменили эту настройку, он должен по-прежнему использовать его. Чтобы убедиться в этом, вы можете выполнить следующую команду:

sudo netstat -tulnp | grep sshd

Проверьте, на каком порту прослушивает SSH.

Теперь, когда все на местах, пришло время перейти к основной части этого руководства.

SSH на виртуальную машину VirtualBox: Мостовой адаптер

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

По умолчанию VirtualBox настраивает новые виртуальные машины с NAT-сетевым подключением. В этом режиме виртуальная машина находится за своего рода внутренним маршрутизатором, который создает VirtualBox. Гостевая система может выходить в внешний мир, но внешняя среда — включая вашу хост-систему — не может напрямую инициировать соединения с виртуальной машиной.

Вот почему попытка подключиться к гостю по SSH с хоста (или другой системы) не срабатывает: движок NAT не перенаправляет автоматически порт 22 (или любой другой порт) с хоста на гостя. Чтобы это обойти, вам нужно переключить вашу виртуальную машину VirtualBox в режим сетевого моста.

Когда вы это делаете, виртуальная машина больше не скрывается за NAT VirtualBox. Вместо этого она подключается напрямую к той же физической или Wi-Fi сети, что и хост, ведя себя как просто еще одна машина в этой локальной сети.

Это означает, что он получает собственный IP-адрес от DHCP-сервера сети (или тот, который вы назначаете вручную), и в этот момент хост — или любая другая машина в сети — может подключиться к нему по SSH так же, как и к любому другому компьютеру. Итак, давайте сделаем это. Это простая задача.

Сначала убедитесь, что виртуальная машина выключена. Затем щелкните правой кнопкой мыши на ВМ и выберите «Настройки» из контекстного меню. Если хотите, вы также можете выбрать ВМ и нажать кнопку «Настройки» в главном меню.

Открытие настроек виртуальной машины VirtualBox

Теперь перейдите в главное меню слева и нажмите «Сеть». Выберите активный сетевой адаптер по умолчанию для вашей виртуальной машины (обычно это «Адаптер 1»). Затем откройте выпадающее меню «Подключен к» и измените настройку с «NAT» на «Мостовой адаптер».

Переключение сетевого адаптера виртуальной машины VirtualBox в режим моста.

Наконец, нажмите кнопку «ОК» в правом нижнем углу, чтобы сохранить изменения.

Примените настройки.

Запустите виртуальную машину. Чтобы подключиться, вам понадобится ее IP-адрес. Самый простой способ его найти — это войти локально и выполнить команду ниже.

ip a

Найти IP-адрес виртуальной машины.

Вы готовы к работе — откройте терминал на любом компьютере в вашей локальной сети и выполните стандартную команду SSH для подключения к вашей виртуальной машине Linux в VirtualBox.

ssh <user>@<host-lan-ip>

Успешно подключено к виртуальной машине Linux VirtualBox через SSH.

SSH на виртуальную машину VirtualBox: NAT с переадресацией портов

Теперь давайте рассмотрим другой вариант подключения к виртуальной машине Linux в VirtualBox по SSH — на этот раз с использованием режима сети NAT по умолчанию с включенным перенаправлением портов. О чем я говорю?

VirtualBox позволяет перенаправлять порт с хост-машины на порт внутри гостевой виртуальной машины. Для SSH распространенная настройка — перенаправить хост-порт 2222 (или другой неиспользуемый порт) на гостевой порт 22. С этим правилом любое соединение, сделанное на порт 2222 на хосте, автоматически передается через NAT-движок VirtualBox и доставляется службе SSH гостевой виртуальной машины. Вот как это сделать.

Откройте настройки виртуальной машины, как описано в предыдущем разделе. В левой панели нажмите на «Сеть» и убедитесь, что вы смотрите на активный сетевой адаптер, который использует ваша виртуальная машина (флажок «Включить сетевой адаптер» должен быть установлен). В выпадающем списке «Подключен к» выберите «NAT». Теперь переходим к интересной части — нажмите кнопку «Переадресация портов».

Настройка сетевого адаптера виртуальной машины VirtualBox на NAT с пробросом портов.

Появится новое окно, в котором вы сможете настроить правила перенаправления портов. Вот что означает каждая опция:

  • Имя: Это просто метка. Вы можете ввести любое имя, которое вам нравится. Наиболее простым вариантом является, конечно, просто “SSH. ”
  • Протокол: Оставьте этот параметр по умолчанию, “TCP.”
  • IP адрес хоста: Используйте 0.0.0.0. Это означает «слушать на всех сетевых интерфейсах хоста». Иными словами, соединения с хостом из любого места (локальная петля, LAN или даже WAN, если открыт) будут приниматься.
  • Порт хоста: Это порт на хост-машине, который будет открыт. Если вы подключаетесь к хосту на порту 2222, трафик будет перенаправлен в виртуальную машину.
  • IP-адрес гостя: Это внутренний IP-адрес гостевой виртуальной машины, назначенный с помощью NAT. Введите IP-адрес вашей виртуальной машины так же, как мы нашли его в предыдущем разделе.
  • Порт для гостей: Это порт, на который SSH сервер слушает внутри виртуальной машины. По умолчанию это 22.

Когда вы будете готовы, подтвердите нажатием кнопки «ОК».

Настройка правила перенаправления портов для виртуальной машины Linux.

Наконец, не забудьте снова нажать кнопку «ОК» в правом нижнем углу, чтобы сохранить все изменения, внесенные до сих пор.

Запустите виртуальную машину. С любого другого компьютера в вашей локальной сети — или даже с самого хоста VirtualBox — выполните команду ниже. Обратите внимание, что на этот раз мы добавляем параметр -p, который указывает SSH подключаться через порт 2222 на хосте. Это тот порт, который мы настроили ранее при конфигурировании переадресации портов.

ssh -p 2222 <user>@<host-lan-ip>

И вот так, мы успешно подключились по SSH к нашему гостю Linux в VirtualBox. Если у вас есть более одной виртуальной машины на Linux и вы хотите сделать то же самое с ними, просто настройте еще одно правило перенаправления портов, используя другой свободный порт — скажем, 2223. Затем, когда вы подключаетесь, убедитесь, что используете этот номер порта с опцией -p в вашей команде SSH.

Заключение

Как вы видите, получение доступа по SSH к вашему гостю VirtualBox не является сложной задачей, как только вы понимаете, как работает сеть. Вы можете использовать мостовую сеть для более прямого соединения или оставить NAT и добавить перенаправление портов, оба метода выполняют задачу. Выбор в основном сводится к тому, как вы предпочитаете управлять подключением ваших виртуальных машин.

Спасибо за ваше время! Надеюсь, вы найдете это руководство полезным. Как всегда, любые отзывы будут очень признательны.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *