Vagrant SSH не работает с VirtualBox


39

vagrant up терпит неудачу, когда он попадает в часть ssh:

myterminal$ vagrant up
[default] VM already created. Booting if its not already running...
[default] Running any VM customizations...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- ssh: 22 => 2222 (adapter 1)
[default] -- db2: 30003 => 30003 (adapter 1)
[default] Cleaning previously set shared folders...
[default] Creating shared folders metadata...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] Failed to connect to VM!
Failed to connect to VM via SSH. Please verify the VM successfully booted
by looking at the VirtualBox GUI.

Затем, когда я впоследствии пытаюсь подключиться с помощью vagrant ssh или vagrant reload или подобного, я получаю это:

myterminal$ vagrant reload
[default] Attempting graceful shutdown of linux...
SSH connection was refused! This usually happens if the VM failed to
boot properly. Some steps to try to fix this: First, try reloading your
VM with `vagrant reload`, since a simple restart sometimes fixes things.
If that doesn't work, destroy your VM and recreate it with a `vagrant destroy`
followed by a `vagrant up`. If that doesn't work, contact a Vagrant
maintainer (support channels listed on the website) for more assistance.

Пожалуйста помоги! Я действительно в тупике.

С уважением,

Люк

Ответы:


10

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

127.0.0.1 localhost myname myalias

Удалил тот, myaliasкоторый я добавил, и он загрузился хорошо. Спасибо @saphirlazuli за подсказку, что это связано с сетью.


Какой обходной путь, если я хочу сохранить миалиас?
Микки Чонг

Если вы хотите использовать псевдоним, способ Debian / Ubuntu состоит в том, чтобы сохранить первую строку как 127.0.0.1 localhost127.0.1.1 foo bar baz
простую

26

У меня была такая же проблема с коробкой, указанной в разделе «Начало работы» на сайте Vagrant. Мое решение ниже для коробки этого урока.

Я нахожу решение здесь: https://github.com/mitchellh/vagrant/issues/391

  1. в VagrantFile добавьте графический интерфейс: config.vm.boot_mode = :gui
  2. бег vagrant up
  3. в графическом интерфейсе войдите с пользователем "vagrant" (пароль = "vagrant")
  4. В графическом интерфейсе, запустить sudo /etc/init.d/networking restart, в /etc/network/interfacesфайле, теперь вы должны иметь раздел с#VAGRANT-BEGIN [...]#VAGRANT-END
  5. беги vagrant reloadна физической машине

3
Это сработало для меня, спасибо. У меня раньше работал Vagrant, потом он перестал работать с новой коробкой. Любая идея, что вызывает это?
Андрей Вит

sudo /etc/init.d/networking перезагрузка работает для меня, спасибо!
Анатолий

2
Я перезапустил, но в / etc / network / interfaces у меня нет раздела с # VAGRANT-BEGIN [...] # VAGRANT-END, какая-либо подсказка, почему? Могу ли я добавить его вручную?
sparrovv

1
Я получаюThe following settings shouldn't exist: boot_mode
Калин

1
Получил в последней версии вы должны поставить v.gui = true для конфигурации провайдера
Calin

6

Для меня это непостоянная проблема, и определенно, похоже, она связана с сетью. Я нашел более полезную информацию в выпусках Vagrant GitHub № 391 и № 455 . Я попытался удалить мою неиспользуемую сеть только для хоста в настройках VirtualBox (как рекомендуется в качестве возможного исправления в одной из проблем GitHub), которая, похоже, не помогла.

Запуск в графическом режиме (как описано в предыдущем ответе) - отличный способ отладки / устранения проблем. Я обнаружил, что это потому, что по какой-либо причине виртуальная машина не может получить IP-адрес при запуске. Запуск в режиме графического интерфейса пользователя, затем вход в систему (vagrant / vagrant) и запуск sudo dhclientв гостевой ОС приведет к получению IP-адреса, и процесс установки Vagrant завершится успешно.

Тем не менее, все еще ищу постоянное исправление.

Надеюсь это поможет!

[ИЗМЕНЕНО ДЛЯ ДОБАВЛЕНИЯ]: в GitHub Issue # 455 было добавлено полезное предложение, включающее добавление следующей конфигурации в ваш Vagrantfile:

config.ssh.max_tries = 150

В настоящее время это работает для меня и, кажется, имеет смысл, поскольку проблема, по-видимому, связана с тайм-аутом - увеличение количества попыток должно увеличить вероятность успеха процесса SSH во времени. Во-первых, это периодически возникающая проблема, поэтому я на некоторое время оставлю за собой суждение, но скрестив пальцы, это сработает! Спасибо karel1980 за предложение исправить.


Удаление моей неиспользуемой сети только для хоста в настройках VirtualBox работало на меня! Спасибо!
Герцог

1
Похоже, что этот параметр был запрещен с версии 1.3.X - github.com/berkshelf/berkshelf/pull/856
Джереми Хайек,

5

Если vagrant upне получается, я рекомендую следующее:

  1. Загрузитесь в режиме графического интерфейса : это помогает увидеть, не повреждено ли изображение (или, например, что оно делает до начала инициализации), установите config.vm.boot_mode = :guiвVagrantfile
  2. Ведение журнала отладки : запустить подготовку с отладкой ,chef.log_level = :debug
  3. Переупакуйте коробку : иногда вам нужно что-то установить до того, как все остальное запустится - для начальной загрузки загрузчика. На самом деле это невозможно, поэтому проще всего загрузить виртуальную машину без какой-либо подготовки, установить все, что вам нужно, и заново упаковать коробку ( vagrant box repackage fooзатем vagrant import fooдобавить и добавить fooв свой Vagrantfile).

Примечание: режим графического интерфейса может иметь другие проблемы, например, для меня не работает инициализация с vagrant, 0.7.5когда включен графический интерфейс. Хотя все еще здорово отлаживать реальную коробку.


2

Мой тип сетевой карты изначально был установлен на 82540EM. Я поменял его на Am79C973и теперь Vagrant up работает каждый раз. Я запустил несколько виртуальных машин, даже перезагрузил хост, и он все еще работает.

Команда:

VBoxManage modifyvm yourmachinename --nictype1 Am79C973

Не забудьте упаковать и перечитать вашу коробку Vagrant.

Я использую Debian Squeeze 64-bit в качестве хоста и гостя, используя VirtualBox 4.1.16 на компьютере с Core i7-2600.


1

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


1

У меня была такая же проблема на OSX (VirtualBox 4.1.0 и Vagrant 0.8.6), и для меня единственной помощью было:

  1. Войти с помощью: GUI по логину / пасс: Vagrant / Vagrant
  2. измените файл «/etc/rc.local», включив в него строку «sh /etc/init.d/networking restart» непосредственно перед «выходом 0».
  3. отключить: графический интерфейс
  4. Бродячая перезагрузка

Я нашел это по адресу: https://github.com/mitchellh/vagrant/issues/391 thx mikhailov.


1

У меня была такая же проблема. В моем случае 64-битная эмуляция не была включена. Включение этой функции в моем BIOS исправило проблему.


1

Моя гостевая коробка не загружалась должным образом из-за проблемы с диском.

Я заставил ВМ закрыться через

VBoxManage controlvm poweroff

Затем я изменил мой, Vagrantfileчтобы включить эту строку:

config.vm.boot_mode =: gui

Далее я перезапустил

бродячий до

В появившемся графическом интерфейсе мне пришлось запустить утилиту «Disk Fixer».

После запуска дисковой утилиты моя виртуальная машина была успешно загружена, и я смог запустить vagrant ssh.


1

Я раскомментировал часть в Vagrantfile следующим образом:

  config.vm.provider :virtualbox do |vb|
    # Don't boot with headless mode
    vb.gui = true

    # Use VBoxManage to customize the VM. For example to change memory:
    # vb.customize ["modifyvm", :id, "--memory", "1024"]
  end

Я сохранил это, а затем я сделал

vagrant reload

и тогда все работало нормально. Я не уверен, почему это все-таки исправило.



0

Моя проблема заключалась в том, что в

/etc/hosts

У меня была запись

127.0.1.1 lucid32

где имя моего ящика было lucidtestизменено

127.0.1.1 lucidtest

и это сработало.


0

Это сообщение предполагает, что сервер ssh не работает на виртуальной машине. убедитесь, что он установлен

sudo apt-get install openssh-server

и работает

ssh localhost

не должно выдавать ошибку.

Чтобы исключить ошибки в vagrant, вы должны попробовать ssh напрямую в vm:

ssh vagrant @ localhost -p2222

(при условии, что пользователь по умолчанию и переадресация портов)


0

На windows 7 беги

vagrant ssh

если вы получите что-то вроде этого ...

`vagrant ssh` isn't available on the Windows platform. You are still able
to SSH into the virtual machine if you get a Windows SSH client (such as
PuTTY). The authentication information is shown below:

Host: 127.0.0.1
Port: 2222
Username: vagrant
Private key: U:/.vagrant.d/insecure_private_key

Тогда вы должны использовать что-то вроде этого ...

ssh vagrant@127.0.0.1 -p 2222 -i /cygdrive/u/.vagrant.d/insecure_private_key

Обратите внимание, что я использую Cygwin на моем Windows, а не Putty.


ОП не использует Windows 7.
Таннер Фолкнер,

Спасибо r.tanner.f - ОС не была указана, это помогло мне, надеюсь, помогает другим.
Artistan

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

0

Вот еще одна возможная причина ошибки:

[default] Waiting for VM to boot. This can take a few minutes.
[default] Failed to connect to VM!
Failed to connect to VM via SSH. Please verify the VM successfully booted
by looking at the VirtualBox GUI.

Имя пользователя может быть указано в файле конфигурации следующим образом:

config.ssh.username = "badusername"

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


0

Моя проблема была в том, vagrant sshчто я ничего не буду делать.

Я удалил ~/.ssh/configи проблема была решена. Скопируйте файл куда-нибудь или переименуйте его, если хотите сохранить.


в локальной или удаленной системе?
Джереми Хайек

0

Как и с другими, я использовал графический интерфейс (у меня всегда есть, чтобы предотвратить подобные проблемы)

config.vm.boot_mode = :gui

Затем я использовал меню VirtualBox, так как команды здесь не работали. Machine> Сброс в меню, тогда ssh был тогда возможен.


0

Я закрыл работающую виртуальную машину и создал новую базу:

  1. Выключите ВМ, я пытаюсь экспортировать
  2. vagrant package --base "salt-master basebox" --vagrantfile ./Vagrantfile
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.