Как подключиться по ssh к виртуальной машине virtualbox
Как подключиться к виртуальной машине VirtualBox по SSH
09.06.2020 Система 199 Просмотров
После установки серверного дистрибутива 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. Для этого можно использовать клиент OpenSSH, который доступен в Windows 10. Поскольку порт « 2222 » на основной системе был проброшен на порт « 22 » на виртуальной машине, то для подключения по SSH нам нужно выполнить следующую команду:
Где « user » — это имя пользователя, а « 2222 » — используемый порт на основной системе.
Как видно по скриншоту вверху, данный способ отлично работает, и мы успешно подключились по SSH к виртуальной машине VirtualBox.
Подключение через сетевой мост
Также есть альтернативный способ подключения к виртуальной машине по SSH для этого нужно изменить тип подключения с « NAT » на « Сетевой мост ». В этом случае виртуальная машина будет подключена к вашей локальной сети и получит IP адрес от вашего роутера из того же диапазона, что и ваша основная система.
Для этого нужно выключить виртуальную машину и зайти в ее свойства в программе VirtualBox. В настройках нужно зайти в раздел « Сеть » и включить тип подключения « Сетевой мост ».
После этого нужно запустить виртуальную машину и выполнить на ней команду « ifconfig » для того, чтобы узнать, какой IP адрес она получила от роутера. В нашем случае был получен IP адрес « 192.168.1.214 ».
После этого к виртуальной машине можно подключаться по SSH. Для этого нужно просто использовать IP адрес, который был ей присвоен роутером. Например, для того чтобы подключиться с помощью клиента OpenSSH нужно выполнить следующую команду:
Где « user » — это имя пользователя, а « 192.168.1.214 » — это ее IP адрес.
Аналогично работает и подключение с помощью PuTTY. Вводим « 192.168.1.214 » и подключаемся по стандартному порту « 22 ».
Как и предыдущий способ, вариант с использованием сетевого моста отлично работает, при этом виртуальная машина не теряет доступа к интернету.
Доступ к Ubuntu на VirtualBox через PuTTY терминал (способ 1)
SSH доступ к Ubuntu в VirtualBox
В качестве гостевой ОС в VirtualBox запущена Ubuntu. На ней развернут LAMP, где гоняются тесты веб-приложений. Чтобы не возится с общими директориями, но иметь возможность общаться с файловой системой гостевой ОС из домашней, реализуем возможность доступа к гостевой ОС по ssh протоколу. FTP поднимать не будем, так как SFTP, мне кажется, будет более, чем достаточно.
В Ubuntu устанавливаем SSH сервер. Я никаких настроек не изменял. Начального конфига более, чем достаточно.
Останавливаем виртуальную машину. И переходим к её настройкам – Настройки > Сеть.
Приведите настройки Адаптера 1 к тем, что вы видите на скриншоте. Если в итоге у вас возникнут какие-то проблемы с сетью гостевой ОС, прежде всего, рекомендую попробовать использовать адаптер иного типа. Я ставлю Intel PRO/1000 MT исходя из железа, используемого на моей машине. Но вы можете попробовать «Паравиртуальную сеть (virtio-net)», например.
Переходите на вкладку Адаптер 2, включите его и также приведите состояние настроек в аналогичное тому, что на скриншоте. Комментарии по поводу типа адаптера не отличаются от предыдущего случая.
Запустите виртуальную машину. При запуске можете получить ошибку (многие сталкиваются на Windows 10, например), где сообщается о невозможности открыть сетевое соединение:
Failed to open/create the internal network ‘HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter’ (VERR_INTNET_FLT_IF_NOT_FOUND).
Failed to attach the network LUN (VERR_INTNET_FLT_IF_NOT_FOUND).
Отправляемся в Панель управления\Сеть и Интернет\Сетевые подключения, находим там VirtualBox Host-Only Network соединение и переходим к просмотру его Свойств. В списке используемых компонентов находим VirtualBox NDIS6 Networking Driver и включаем его.
Ошибка не должна больше вас беспокоить. Запускаем виртуальную машину.
Переходим к настройке сетевых интерфейсов в гостевой ОС. Необходимо добиться того, чтобы гостевая ОС имела статический IP адрес, по которому вы и будете к ней подключаться.
С правами root пользователя открываем в режиме редактирования файл /etc/network/interfaces.
Настраиваем интерфейс enp0s8. Содержимое файла необходимо привести к следующему состоянию:
Подключаться к виртуальной машине вы будете по ip 192.168.56.10. Сохраняем измененный файл /etc/network/interfaces, перезагружаем виртуальную машину и пробуем подключиться к ней по SSH.
Комментарии (9)
В Windows 10 добавлена возможность работать с bash Ubuntu из коробки. Я у себя на компе настроил Lamp сервер именно в bash. Не думал на этот счет? Это же удобней чем выделять ресурсы на целую виртуальную машину.
Привычная среда для запуска веб-приложений — Unix. Поэтому, для финального тестирования, виртуальная машина мне нравится больше. Условия идентичны боевым. Для разработки мне удобнее и приятнее Docker.
Там тоже виртуальная машина, просто другая.
да и windows 10 очень любит новое железо, обновляться, и вообще плевать на пользователя.
Проброс портов в VirtualBox для подключения к Linux по SSH
В данной статье мы с Вами рассмотрим возможность программы VirtualBox пробрасывать порты в гостевую операционную систему, для того чтобы иметь доступ к ней с хоста, т.е. с реальной машины, например, в тех случаях, когда подключение (сеть) в гостевой ОС в VirtualBox работает в режиме «NAT».
Данная возможность будет полезна, например, когда Вам нужен одновременно и доступ к Интернету в гостевой операционной системе, и доступ к каким-нибудь сервисам в гостевой ОС с хоста.
Доступ к Интернету в гостевой ОС можно получить с помощью выбора типа подключения «NAT», но как Вы, наверное, знаете, при этом теряется доступ к сервисам гостевой ОС с реального Вашего компьютера. Данную проблему как раз и решает проброс портов.
Рассматривать проброс портов мы будем на примере случая, когда Вы создали виртуальную машину в VirtualBox и установили в нее серверную операционную систему, например Linux Ubuntu Server, при этом Вы настроили сеть в режиме NAT для доступа в Интернет, но доступа к гостевой операционной системе (Ubuntu Server) у Вас нет. Например, Вы не можете подключиться к ней по SSH со своего компьютера, или обратиться к Web серверу, или даже просто скопировать команду и вставить в консоль. Поэтому давайте пробросим порт в гостевую ОС, например, для того чтобы подключится к ней по SSH всем известной программой PuTTY. С помощью нее мы сможем без проблем управлять сервером и в случае необходимости копировать команды в нее.
PuTTY – это бесплатная клиентская программа для удаленного подключения, например к серверам по протоколам SSH, Telnet и другим. Она позволяет управлять удаленным компьютером. PuTTY — это клиентская часть, серверная должна быть реализована на удаленной стороне, например, в нашем случае в Ubuntu Server должен быть установлен SSH сервер. Скачать PuTTY можно с официального сайта — www.putty.org.
Настройка проброса портов в VirtualBox для SSH
SSH – сервер обычно прослушивает 22 порт, поэтому нам необходимо пробросить подключение именно на 22 порт.
Шаг 1
Для того чтобы пробросить порт, запускаем VirtualBox и заходим в настройки нашей виртуальной машины с Ubuntu Server. Например, выбираем нужную машину и нажимаем кнопку «Настроить», данный пункт также доступен, если нажать правой кнопкой мыши по выбранной виртуальной машине.
Шаг 2
Затем переходим в раздел настроек «Сеть», и открываем вкладку с включенным адаптером. Тип подключения, как Вы помните, «NAT» — для доступа в Интернет.
Шаг 3
Далее щелкаем на пункт «Дополнительно», чтобы отобразить дополнительные настройки данного адаптера, и после этого нажимаем на кнопку «Проброс портов».
Шаг 4
В итоге у нас откроется окно «Правила проброса портов». Для добавления нового правила нажимаем на иконку с плюсиком.
Шаг 5
На данном этапе Вы уже должны знать IP адрес гостевой операционной системы и порт, который прослушивает SSH сервер (по умолчанию это 22 порт). В Ubuntu Server IP адрес можно узнать с помощью команды ifconfig (по умолчанию это 10.2.0.15).
Описание колонок таблицы с правилами:
После заполнения таблицы с правилом, нажимаем «ОК».
Шаг 6
На этом настройка проброса портов закончена, теперь мы можем проверить работу данного правила (проброса). Для этого сначала запускаем виртуальную машину с Ubuntu Server, а затем программу PuTTY. На вкладке Session выбираем тип соединения SSH и в поле Host Name пишем локальный адрес компьютера (хоста), которой мы указывали в колонке «IP хоста» в правилах проброса портов, если ничего не указывали, то пишите 127.0.0.1. В поле порт указываем номер порта, который мы указывали в колонке «Порт хоста», т.е. 2222. Нажимаем кнопку «Open».
Если после этого Вы получили приглашение на ввод логина, то это значит, что подключение работает, и Вы, соответственно, можете вводить учетные данные от гостевой операционной системы.
У меня на этом все, надеюсь, материал был Вам полезен, пока!
Инфо-бизнес
Настройка доступа по SSH со своего компьютера к серверу на VirtualBox
Для тренировки и оттачивания своих навыков по удаленному управлению сервером на Linux, не обязательно сразу покупать VPS. Для начала можно сымитировать такую ситуацию у себя на компьютере.
Подразумевается: что VirtualBox у вас уже установлен и в нем создана какая-то машина на Linux с установленным OpenSSH Server. Важно, что при установке вашего Linux на виртуальную машину вы установили SSH server. В противном случае, его надо будет установить дополнительно самостоятельно. Наша операционная система — Windows. Я буду показывать на примере Windows 7.
Для начала, нам нужно узнать IP адрес сетевой карты VirtualBox, разумеется если вы не сами его прописали.
Заходим в : Панель управления\Все элементы панели управления\Центр управления сетями и общим доступом. Затем жмем «Изменение параметров адаптера».
Далее выделяем сетевое подключение VirtualBox Host-Only Network. Нажимаем правой кнопкой и выбираем состояние, в открывшимся окне жмем сведения.
В стоке Адрес IPv4 — наш IP адрес. Запоминаем/записываем его.
Нас интересует подключение 2 сетевой карты enp0s3. Видим, что ip адрес у нас 10.0.2.15. Запоминаем/записываем его.
Теперь у нас есть все необходимое, что бы сделать «проброс портов». Вкратце объясню что это такое. В нашем случае у нас есть сетевая карта VirtualBox. Во всех сетевых картах есть 2 интерфейса, то есть 2 «способа общения». Второй «способ общения» общается с вашим компьютером, первый, в этой же карте, общается со всеми, кто «по ту сторону», т.е. внутри самого VirtualBox. Если вы поставите и запустите несколько машин в VirtualBox, то все их сетевые карты «вторым способом» будут «общаться» с сетевой картой VirtualBox, сама же сетевая карта VirtualBox будет «общаться» со всеми этими машинами «первым способом», так как «вторым способом» она «общается с нашим компьютером. Виртуальные машины не могут «общаться» с нашим компьютером напрямую, только через сетевую карту VirtualBox. (Этот механизм описывает настройку сети «NAT» в сетевой карте VirtualBox ибо так более правдоподобно: как будто удаленный сервер подключен к роутеру со статичным IP)
Поэтому, нам надо «сказать» (сделать «проброс портов») сетевой карте VirtualBox что при обращении к ней (т.е. к ее IP адресу) и указанием определенного порта, мы просим соединить нас с указанной машиной с которой она «общается» «первым способом».
Выбираем в окне виртуальной машины «Устройство» —>»Сеть» —>»Настроить сеть»
Смотрим «Тип подключения» и выбираем NAT. Кликаем на «дополнительно» и «проброс портов».
В открывшемся меню нам надо «создать новое правило проброса портов», затем в поле «Адрес хоста» — указать IP сетевой карты VirtualBox, в поле «порт хоста» — поставить 22, в поле «адрес гостя» — указать IP сетевой карты виртуальной машины, в поле «порт гостя» — поставить 22.
Установка Ubuntu Server
на виртуальную машину Virtualbox
и настройка SSH сервера.
Практически любому веб-разработчику, рано или поздно, приходится сталкиваться с веб серверами. Даже если Вы работаете в достаточно крупной компании и за работу с сервером отвечает специально обученный человек, знать как устроен сервер все равно не будет лишним.
Сегодня мы установим сервер Ubuntu на виртуальную машину и у Вас появиться возможность с ним поэкспериментировать. Установить, например, Node.js или базу данных. Установить NGINX, Apache, изменить настройки и т.д.
Для этого совершенно не обязательно тратить деньги и покупать место у хостера.
1. Подготовка к установке.
Ссылки на скачивание:
Для начала скачаем и установим виртуальную машину VirtualBox, сам сервер Ubuntu и программы для связи с нашим сервером. Если у Вас система Windows и установлен PowerShell, то достаточно скачать и установить WinSCP, если PowerShell не установлен, то нужно будет скачать PuTTY. Для систем Linux дополнительных программ не требуется. К сожалению для MacOS подсказать не смогу.
Здесь будет рассмотрена установка и настройка Ubuntu Server 18.04 на Windows. Однако установка и настройка на другие системы отличается только способом подключения к SSH серверу.
2. Установка Ubuntu Server
Нажимаем кнопку «Создать», называем ubuntu, выбираем разрядность как у Вашей системы и соглашаемся со всем, что предложено по умолчанию.
Теперь нужно указать место хранения виртуальной машины. Я предпочитаю хранить подобные вещи не на системном диске. Жмем на иконку папки и выбираем желаемый диск и директорию. Имя оставляем по умолчанию ubuntu.
Ниже предлагается указать максимальный размер виртуального диска. Дело в том, что динамический виртуальный диск подразумевает не бесконечное расширение, а то, что занимать он будет столько, сколько в нем записано. Но не больше, чем мы укажем при его создании. Поэтому зададим нашему диску гигов 20. Для обучения, думаю, хватит. Можете задать больше.
Нажимаем «Создать». Далее жмем кнопку «Настроить» и выбираем вкладку Сеть. Первый адаптер оставляем без изменений. Заходим во вкладку «Адаптер 2», включаем его и выбираем «Виртуальный адаптер хоста». Жмем «ОК».
Теперь нажимаем кнопку «Запустить». Появмться окно выбора установочного диска. Жмем на кнопку с папкой, далее «Добавить» и выбираем скачанный образ Ubuntu Server. Жмем «продолжить».
Начнется установка сервера. Выбираем Английский язык, выбираем обновление во время установки и затем везде кликаем [Done].
Для перехода между пунктами используем клавишу Tab. Для выбора «Continue» используем стрелку вниз.
Указываем свое имя, имя сервера, имя пользователя, под которым будете заходить и пароль пользователя. Подтверждаем пароль пользователя. Далее обязательно отмечаем установку OpenSSH Server. Для этого нажимаем клавишу Пробел. В поле установки дополнений ничего не выбираем и не нажимаем «Cancel update and reboot». Установка обновлений может занять достаточно много времени. Ждем.
На этом установка Ubuntu Server закончена. Дальше будем настраивать.
3. Настраиваем подключение по SSH
Для начала создадим пароль для пользователя «ROOT». Это пользователь Ubuntu, который имеет расширенные права (аналогично пользователю «Администратор» в Windows). Для этого вводим:
Необходимо будет ввести свой пароль, затем ввести новый пароль для рута и подтвердить новый пароль.
Теперь разрешим руту входить по SSH. Для этого отредактируем файл sshd_config. Вводим:
sudo nano /etc/ssh/sshd_config
Возможно потребуется ввести свой пароль (не рута!). Находим строчку #PermitRootLogin prohibit-password, раскомментируем ее и заменяем prohibit-password на yes
sudo service ssh restart
Теперь временно настроим сетевое подключение для SSH. Временно потому, что после перезагрузки такая настройка уже работать не будет и придется вводить комманду заново. Набираем:
sudo ifconfig enp0s8 192.168.56.101
Проверяем. Набираем ifconfig и видим подлючение enp0s8
Теперь открываем PowerShell и подключаемся к нашему серверу (если PowerShell то устанавливаем PuTTY и используем его):
В перый раз при входе на незнакомый адрес, PowerShell спросит разрешения. Пишем Yes. Вводим пароль рута и заходим на сервер.
Теперь увеличим время жизни сессии SSH. Если определенное время, при подключении по SSH, не производить никаких действий, то подключение прерывается. И потом приходится подключаться заново. Порой это раздражает. Поэтому время жизни сессии я рекомендую увеличить.
Пролистываем файл вниз и добавляем следующие строчки:
TCPKeepAlive yes
ClientAliveInterval 300
ClientAliveCountMax 60
Как на изображении ниже.
Сохраняем файл и закрываем редактор. Возвращаемся в PowerShell и перезапускаем SSH сервер:
sudo service ssh restart
Если мы вошли как root пользователь то слово sudo можно не писать.
Следующим шагом мы настроим постоянное подключение enp0s8. Для этого возвращаемся в WinSCP, выходим из папки ssh и заходим в netplan (/etc/netplan). Открываем файл 00-installer-config.yaml и прописываем следующие строчки:
enp0s8:
dhcp4: no
addresses: [192.168.56.101/24]
В результате файл должен выглядеть так:
Сохраняем файл и закрываем редактор. Закрываем WinSCP. Возвращаемся в PowerShell и набираем reboot чтобы перезапустить наш сервер. Позле перезапуска снова входим по SSH для проверки.
На этом установка и первоначальная настройка Ubuntu Server закончена.