VirtualBox

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

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

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

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

Как работают SSH-ключи?

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

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

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

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

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

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

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

$ ssh-keygen

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

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

$ ls -al ~ /.ssh

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

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

$ service sshd status

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

$ sudo ufw статус

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

$ sudo ufw разрешить ssh

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

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

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

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

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

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

$ service sshd restart

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

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

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

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

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

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

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

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

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

$ ssh @ip.адрес.из.ваш.vm

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

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

Как разработать игру в Linux
Десять лет назад не многие пользователи Linux могли бы предсказать, что их любимая операционная система однажды станет популярной игровой платформой д...
Порты коммерческих игровых движков с открытым исходным кодом
Бесплатные игры с открытым исходным кодом и кроссплатформенные версии игрового движка можно использовать для игры как в старые, так и в некоторые из с...
Лучшие игры с командной строкой для Linux
Командная строка - не только ваш главный союзник при использовании Linux - она ​​также может быть источником развлечений, потому что вы можете использ...