7

У меня есть 3 виртуальные машины Ubuntu 12.04, настроенные с помощью мостовых сетей и настройки с помощью Vagrant. Я могу получить доступ ко всем из них с хоста, используя "vagrant ssh", но я не могу понять, как я подключаюсь от одной гостевой виртуальной машины к другой.

3 ответа3

5

В Vagrantfile дайте каждой машине статический частный адрес.

Vagrant.configure(2) do |config|
    config.vm.define "master" do |master|    
        master.vm.box = "ubuntu/trusty64"
        # You may wish to use a more obscure private ip, like 10.2.2.4
        master.vm.network "private_network", ip: "10.0.0.200"
    end
    config.vm.define "slave" do |slave|    
        slave.vm.box = "ubuntu/trusty64"
        # You may wish to use a more obscure private ip, like 10.2.2.5
        slave.vm.network "private_network", ip: "10.0.0.201"
    end
End

На обоих этих компьютерах вы можете сначала загрузить ssh в один по имени

vagrant ssh master

И из этого сеанса вы можете ssh на другую машину через частную сеть ip:

ssh 10.0.0.201

При запросе имени пользователя / пароля вы можете аутентифицироваться как vagrant / vagrant или дополнительно настроить ssh для себя.


Эта информация была адаптирована из следующего поста [1]:

  1. Vagrant Virtual Machine Cluster Jesse - jessesnet 2014-04-22. Получено 2015-02-26
1

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

 ssh myname@ip_of_vm_2

Вы можете найти IP-адреса своих машин либо непосредственно внутри каждой машины, либо с помощью стандартного инструмента, такого как nmap , либо запросив у маршрутизатора список клиентов DHCP. Наконец, если вы знаете их IP-адреса, но не их имена BIOS, вы можете использовать nmbd, чтобы связать имя с IP-адресом:

 nmblookup -A IP_address

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

0

Я только что исправил это в сложной настройке Cent Vagrant с несколькими ОС CentOS (BoxCutter 6.9). Существует два уровня этой проблемы, моя проблема была 2:

  1. Получите правильную конфигурацию Vagrant, чтобы у вас была "private_network", и IP-адреса всех ваших виртуальных машин находятся в одной подсети (статической или DHCP): https://www.vagrantup.com/docs/networking/private_network.html.

  2. При ssh'ing между виртуальными машинами, если вы получаете эту ошибку: [root@vm01 ~]# ssh root@vm02 Permission denied (publickey,gssapi-keyex,gssapi-with-mic). Сообщение об ошибке означает, что ни один из методов аутентификации не смог аутентифицировать ваш сеанс, и нет упоминания опции пароля, поэтому аутентификация по паролю, вероятно, была отключена. Чтобы исправить, отредактируйте /etc/ssh/sshd_config и убедитесь, что у вас есть PasswordAuthentication yes и он не закомментирован (#), затем перезапустите sshd если требуется: service sshd restart (она не отключит никакие сессии, потому что она умная).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .