Ответы:
В 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] :
Если вы установили их с мостовым интерфейсом, это означает, что все они принадлежат вашей стандартной локальной сети. Таким образом, вы можете легко получить доступ к виртуальной машине с другой виртуальной машины, выполнив
ssh myname@ip_of_vm_2
Вы можете найти IP-адреса своих машин либо непосредственно внутри каждой машины, либо с помощью стандартного инструмента, такого как nmap
или запросив у маршрутизатора список клиентов DHCP. Наконец, если вы знаете их IP-адреса, но не их имена BIOS, вы можете использовать nmbd, чтобы связать имя с IP-адресом:
nmblookup -A IP_address
Между прочим, эта простота доступа (которая устанавливает ваши виртуальные машины на одну ногу с вашими локальными сетями) является одной из причин, почему я всегда использую мостовой интерфейс.
Я только что исправил это в сложной настройке Cent Vagrant с несколькими ОС CentOS (BoxCutter 6.9). Существует два уровня этой проблемы, моя проблема была 2:
Правильно настройте конфигурацию Vagrant, чтобы у вас была «private_network», а IP-адреса всех ваших виртуальных машин находятся в одной подсети (статической или DHCP): https://www.vagrantup.com/docs/networking/private_network.html
При ssh'ing между VM, если вы получаете эту ошибку:
[root@vm01 ~]# ssh root@vm02
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Сообщение об ошибке означает, что ни один из методов аутентификации не смог аутентифицировать ваш сеанс, и нет упоминания опции пароля, поэтому аутентификация по паролю, вероятно, была отключена. Исправить правку /etc/ssh/sshd_config
и проверьте, что у вас есть PasswordAuthentication yes
и это не закомментировано ( #
), затем перезагрузите sshd
если необходимо: service sshd restart
(это не отсоединит никаких сессий, потому что это умно).