Как подключиться к виртуальной машине VirtualBox по SSH
После установки серверного дистрибутива Linux на виртуальную машину VirtualBox вы можете обнаружить, что подключение по SSH не работает. Это связано с тем, что по умолчанию на VirtualBox используется подключение к интернету с помощью NAT.
При таком способе подключения у вас нет возможности подключаться к виртуальной машине из своей реальной операционной системы. В частности, вы не сможете подключиться по SSH. В данной статье мы рассмотрим сразу два способа, как можно решить эту проблему. Первый вариант – проброс портов через NAT, а второй – использование сетевого моста. Оба этих способа сохраняют доступ к интернету на виртуальной машине.
Содержание
Проброс портов для SSH
Для проброса портов вам нужно знать IP адрес, который присваивается виртуальной машине. Для этого запустите виртуальную машину и выполните на ней команду «ifconfig». В ответ вы получите информацию о сетевых подключениях, в которой будет указан и IP адрес. В нашем случае был получен IP адрес – «10.0.2.15».
Обратите внимание, если в вашей системе нет команды «ifconfig», то ее нужно будет установить отдельно. В случае Debian и Ubuntu Linux это можно сделать с помощью команды «apt-get install net-tools».
После того как мы узнали IP адрес виртуальную машину нужно выключить и открыть ее настройки в программе VirtualBox.
В настройках виртуальной машины нужно открыть раздел «Сеть», открыть дополнительные настройки и перейти к пробросу портов.
После этого откроется окно для проброса портов. Здесь нужно нажать на кнопку «Добавить» и заполнить следующие данные:
- Имя: SSH.
- Протокол: TCP.
- Адрес хоста: оставляем пустым или указываем 127.0.0.1.
- Порт хоста: любой свободный порт на вашей основной системе, например, 2222.
- Адрес гостя: IP адрес, который был присвоен вашей виртуальной машине. В нашем случае это 10.0.2.15.
- Порт гостя: порт SSH на виртуальной машине, по умолчанию – 22.
После проброса порта закрываем все окна с помощью кнопки «ОК».
После этого можно подключаться к виртуальной машине по SSH. Для этого можно использовать клиент OpenSSH, который доступен в Windows 10. Поскольку порт «2222» на основной системе был проброшен на порт «22» на виртуальной машине, то для подключения по SSH нам нужно выполнить следующую команду:
ssh user@localhost -p 2222
Где «user» — это имя пользователя, а «2222» — используемый порт на основной системе.
Аналогичным способом выполняется подключение с помощью PuTTY. В поле «Host Name» указываем «localhost», а в поле «Port» — «2222». Более подробно об OpenSSH и PyTTY в отдельной статье о подключении по SSH.
Как видно по скриншоту вверху, данный способ отлично работает, и мы успешно подключились по SSH к виртуальной машине VirtualBox.
Подключение через сетевой мост
Также есть альтернативный способ подключения к виртуальной машине по SSH для этого нужно изменить тип подключения с «NAT» на «Сетевой мост». В этом случае виртуальная машина будет подключена к вашей локальной сети и получит IP адрес от вашего роутера из того же диапазона, что и ваша основная система.
Для этого нужно выключить виртуальную машину и зайти в ее свойства в программе VirtualBox. В настройках нужно зайти в раздел «Сеть» и включить тип подключения «Сетевой мост».
После этого нужно запустить виртуальную машину и выполнить на ней команду «ifconfig» для того, чтобы узнать, какой IP адрес она получила от роутера. В нашем случае был получен IP адрес «192.168.1.214».
После этого к виртуальной машине можно подключаться по SSH. Для этого нужно просто использовать IP адрес, который был ей присвоен роутером. Например, для того чтобы подключиться с помощью клиента OpenSSH нужно выполнить следующую команду:
ssh user@192.168.1.214
Где «user» — это имя пользователя, а «192.168.1.214» — это ее IP адрес.
Аналогично работает и подключение с помощью PuTTY. Вводим «192.168.1.214» и подключаемся по стандартному порту «22».
Как и предыдущий способ, вариант с использованием сетевого моста отлично работает, при этом виртуальная машина не теряет доступа к интернету.