Как подключиться к гостю VirtualBox по SSH

How Ssh Into Your Virtualbox Guest



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

Возможность подключения по SSH к вашей гостевой ОС может пригодиться, если вы не хотите использовать графический интерфейс виртуальной машины. Просто запустите свою виртуальную машину в автономном режиме, а также подключитесь к ней по SSH и выйдите из нее, не открывая несколько окон в вашем терминале.







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



Вот упрощенная модель работы SSH. Вы создаете пару ключей на своем локальном компьютере. Открытый ключ и закрытый ключ. Сообщения, зашифрованные с помощью открытого ключа, можно расшифровать с помощью закрытого ключа и наоборот. Эти ключи обычно хранятся на вашем локальном компьютере по пути ~/.ssh/id_rsa (закрытый ключ) и ~/.ssh/id_rsa.pem (открытый ключ).

Затем вы переходите на свой удаленный сервер, входите в консоль как обычный пользователь или пользователь root, открываете файл ~/.ssh/authorized_keys этого сервера. Здесь вы вводите содержимое вашего открытого ключа как есть. Как только это будет сделано, вы можете использовать ssh как этот пользователь на сервере, чей каталог .ssh имеет authorized_keys, с вашего локального устройства.

В .NS extension означает, что этот файл является открытым ключом, которым вы можете поделиться с кем угодно. В id_rsa часть просто указывает, какой шифр шифрования используется (в данном случае это RSA). Закрытый ключ может быть дополнительно защищен парольной фразой, которую вам нужно будет вводить каждый раз, когда вы хотите войти на удаленный сервер, используя этот закрытый ключ.

Если у вас есть Mac, Linux или любая другая UNIX-подобная система в качестве локального компьютера, вы можете генерировать ключи и управлять ими с помощью терминала, а также вы можете подключаться к удаленным серверам по SSH, используя тот же терминал. Для пользователей Windows я бы посоветовал использовать PuTTY или Git Bash последнее является моим личным предпочтением. Команды почти такие же, если у вас есть клиент SSH.

Настройка SSH-ключей

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

В вашей локальная машина , откройте терминал и введите команду:

$ssh-keygen

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

Убедитесь, что ключи созданы, проверив содержимое вашего ~ / .ssh папка.

$ls ~/.ssh

Если вы видите файлы, соответствующие значениям по умолчанию, отображаемые в ssh-keygen подскажите тогда все заработало нормально.

Теперь откройте консоль для своего Виртуальная машина . Сначала проверьте, работает ли на вашей виртуальной машине SSH-сервер.

$статус службы sshd

Если он не установлен, используйте диспетчер пакетов для поиска и установки сервера OpenSSH. Как только это будет сделано, убедитесь, что брандмауэр вашей виртуальной машины открыт на порту 22. Например, если вы используете Ubuntu в качестве виртуальной машины, брандмауэр по умолчанию ufw должен быть либо отключен, либо должен разрешать подключения к порту 22 следующим образом:

$судостатус ufw

Если if не открыт на порту 22, используйте следующую команду:

$судоufw разрешитьssh

Затем откройте файл ~ / .ssh / authorized_keys на вашей виртуальной машине, используя ваш любимый текстовый редактор. На следующем шаге вы можете включить межсетевой буфер обмена или двунаправленный буфер обмена.

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

(Необязательно) Без использования SSH-ключей

Если вы доверяете своей локальной сети, вы можете использовать менее безопасный метод использования пароля UNIX для подключения ssh к вашей виртуальной машине. Откройте файл / и т.д. / SSH / sshd_config на вашей виртуальной машине и замените строку:

#PasswordAuthentication no

К

ПарольАутентификацияда

Как только это будет сделано, перезапустите ваш SSH-сервер.

$перезапуск службы sshd

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

Ваша виртуальная машина и сеть

Чтобы вы могли подключиться к своей виртуальной машине по ssh, ваш локальный компьютер (тот, у которого есть закрытый ключ) и виртуальная машина должны находиться в одной сети. Таким образом, вы можете получить доступ к IP-адресу этой виртуальной машины. Мы покажем вам, как добавить виртуальную машину в вашу локальную сеть.

Давайте рассмотрим пример настройки обычного домашнего маршрутизатора. Ваш компьютер вместе с другими устройствами подключен к домашнему маршрутизатору. Этот маршрутизатор также действует как DHCP-сервер, что означает, что он назначает каждому подключенному к нему устройству уникальный частный IP-адрес. Ваш настольный компьютер получает IP, так же как и ваш телефон и ваш ноутбук. Только устройства, подключенные к этому маршрутизатору, могут общаться друг с другом через свои IP-адреса.

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

Откройте VirtualBox Manager, выберите целевую виртуальную машину, откройте Настройки → Сеть и выберите Bridge Networking вместо NAT.

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

Теперь моя виртуальная машина с именем ubuntuvm, отображается в моей настройке LAN следующим образом. Проверьте настройки вашего роутера, чтобы узнать, работает ли то же самое для вас.

Как только вы узнаете IP-адрес своей виртуальной машины, вы сможете подключиться к ней по SSH, выполнив команду:

$ssh <имя пользователя> @ip.address.of.your.vm

Если вы указали парольную фразу для своего закрытого ключа на описанных выше шагах, вам будет предложено ввести ее повторно.

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