Как подключиться к виртуальной машине 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. Конечно, вы также можете выполнить systemctl status ssh или systemctl status sshd — точное имя службы зависит от вашего дистрибутива — чтобы проверить то же самое.
Однако, если приведенные выше команды не показывают работу SSH (не возвращают ничего), вам нужно сначала установить и запустить его. Обсуждение этой настройки выходит за рамки этого руководства, поэтому проверьте документацию вашего дистрибутива для получения подробных шагов.
По умолчанию SSH прослушивает порт 22, и если вы не изменили эту настройку, он должен по-прежнему использовать его. Чтобы убедиться в этом, вы можете выполнить следующую команду:
sudo netstat -tulnp | grep sshd
Теперь, когда все на местах, пришло время перейти к основной части этого руководства.
SSH на виртуальную машину VirtualBox: Мостовой адаптер
Прежде чем перейти к конкретным изменениям, я хочу немного поговорить о теории — просто чтобы было ясно, что мы на самом деле делаем и, что более важно, почему мы это делаем.
По умолчанию VirtualBox настраивает новые виртуальные машины с NAT-сетевым подключением. В этом режиме виртуальная машина находится за своего рода внутренним маршрутизатором, который создает VirtualBox. Гостевая система может выходить в внешний мир, но внешняя среда — включая вашу хост-систему — не может напрямую инициировать соединения с виртуальной машиной.
Вот почему попытка подключиться к гостю по SSH с хоста (или другой системы) не срабатывает: движок NAT не перенаправляет автоматически порт 22 (или любой другой порт) с хоста на гостя. Чтобы это обойти, вам нужно переключить вашу виртуальную машину VirtualBox в режим сетевого моста.
Когда вы это делаете, виртуальная машина больше не скрывается за NAT VirtualBox. Вместо этого она подключается напрямую к той же физической или Wi-Fi сети, что и хост, ведя себя как просто еще одна машина в этой локальной сети.
Это означает, что он получает собственный IP-адрес от DHCP-сервера сети (или тот, который вы назначаете вручную), и в этот момент хост — или любая другая машина в сети — может подключиться к нему по SSH так же, как и к любому другому компьютеру. Итак, давайте сделаем это. Это простая задача.
Сначала убедитесь, что виртуальная машина выключена. Затем щелкните правой кнопкой мыши на ВМ и выберите «Настройки» из контекстного меню. Если хотите, вы также можете выбрать ВМ и нажать кнопку «Настройки» в главном меню.
Теперь перейдите в главное меню слева и нажмите «Сеть». Выберите активный сетевой адаптер по умолчанию для вашей виртуальной машины (обычно это «Адаптер 1»). Затем откройте выпадающее меню «Подключен к» и измените настройку с «NAT» на «Мостовой адаптер».
Наконец, нажмите кнопку «ОК» в правом нижнем углу, чтобы сохранить изменения.
Запустите виртуальную машину. Чтобы подключиться, вам понадобится ее IP-адрес. Самый простой способ его найти — это войти локально и выполнить команду ниже.
ip a
Вы готовы к работе — откройте терминал на любом компьютере в вашей локальной сети и выполните стандартную команду SSH для подключения к вашей виртуальной машине Linux в VirtualBox.
ssh <user>@<host-lan-ip>
SSH на виртуальную машину VirtualBox: NAT с переадресацией портов
Теперь давайте рассмотрим другой вариант подключения к виртуальной машине Linux в VirtualBox по SSH — на этот раз с использованием режима сети NAT по умолчанию с включенным перенаправлением портов. О чем я говорю?
VirtualBox позволяет перенаправлять порт с хост-машины на порт внутри гостевой виртуальной машины. Для SSH распространенная настройка — перенаправить хост-порт 2222 (или другой неиспользуемый порт) на гостевой порт 22. С этим правилом любое соединение, сделанное на порт 2222 на хосте, автоматически передается через NAT-движок VirtualBox и доставляется службе SSH гостевой виртуальной машины. Вот как это сделать.
Откройте настройки виртуальной машины, как описано в предыдущем разделе. В левой панели нажмите на «Сеть» и убедитесь, что вы смотрите на активный сетевой адаптер, который использует ваша виртуальная машина (флажок «Включить сетевой адаптер» должен быть установлен). В выпадающем списке «Подключен к» выберите «NAT». Теперь переходим к интересной части — нажмите кнопку «Переадресация портов».
Появится новое окно, в котором вы сможете настроить правила перенаправления портов. Вот что означает каждая опция:
- Имя: Это просто метка. Вы можете ввести любое имя, которое вам нравится. Наиболее простым вариантом является, конечно, просто “SSH. ”
- Протокол: Оставьте этот параметр по умолчанию, “TCP.”
- IP адрес хоста: Используйте 0.0.0.0. Это означает «слушать на всех сетевых интерфейсах хоста». Иными словами, соединения с хостом из любого места (локальная петля, LAN или даже WAN, если открыт) будут приниматься.
- Порт хоста: Это порт на хост-машине, который будет открыт. Если вы подключаетесь к хосту на порту 2222, трафик будет перенаправлен в виртуальную машину.
- IP-адрес гостя: Это внутренний IP-адрес гостевой виртуальной машины, назначенный с помощью NAT. Введите IP-адрес вашей виртуальной машины так же, как мы нашли его в предыдущем разделе.
- Порт для гостей: Это порт, на который SSH сервер слушает внутри виртуальной машины. По умолчанию это 22.
Когда вы будете готовы, подтвердите нажатием кнопки «ОК».
Наконец, не забудьте снова нажать кнопку «ОК» в правом нижнем углу, чтобы сохранить все изменения, внесенные до сих пор.
Запустите виртуальную машину. С любого другого компьютера в вашей локальной сети — или даже с самого хоста VirtualBox — выполните команду ниже. Обратите внимание, что на этот раз мы добавляем параметр -p, который указывает SSH подключаться через порт 2222 на хосте. Это тот порт, который мы настроили ранее при конфигурировании переадресации портов.
ssh -p 2222 <user>@<host-lan-ip>
И вот так, мы успешно подключились по SSH к нашему гостю Linux в VirtualBox. Если у вас есть более одной виртуальной машины на Linux и вы хотите сделать то же самое с ними, просто настройте еще одно правило перенаправления портов, используя другой свободный порт — скажем, 2223. Затем, когда вы подключаетесь, убедитесь, что используете этот номер порта с опцией -p в вашей команде SSH.
Заключение
Как вы видите, получение доступа по SSH к вашему гостю VirtualBox не является сложной задачей, как только вы понимаете, как работает сеть. Вы можете использовать мостовую сеть для более прямого соединения или оставить NAT и добавить перенаправление портов, оба метода выполняют задачу. Выбор в основном сводится к тому, как вы предпочитаете управлять подключением ваших виртуальных машин.
Спасибо за ваше время! Надеюсь, вы найдете это руководство полезным. Как всегда, любые отзывы будут очень признательны.













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