Зрозумілий ssh ​​не вдається з VirtualBox


39

бродяг не вдається, коли він потрапить до 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 localhost, але додати другий рядок зі своїми псевдонімами, як-от так:127.0.1.1 foo bar baz
CodeGnome

26

У мене була така ж проблема з полем, вказаним у веб-сайті "Початок роботи". Моє рішення нижче - це поле цього підручника.

Тут я знаходжу рішення: https://github.com/mitchellh/vagrant/isissue/391

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

3
Це працювало для мене, дякую. Раніше я працював Vagrant, тоді він перестав працювати з новою коробкою. Будь-яка ідея, що це викликає?
Ендрю Віт

sudo /etc/init.d/networking перезапуск працює для мене, дякую!
Анатолій

2
Я перезапустив, але в / etc / network / інтерфейсах у мене немає розділу з # 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), що, здається, не допомогло.

Запуск в режимі gui (як описано в попередній відповіді) - це прекрасний спосіб налагодження / виправлення проблем. Я виявив, що це тому, що з будь-якої причини, VM не може отримати IP-адресу при запуску. Починаючи в режимі GUI, потім вхід (бродячий / бродячий) та запуск sudo dhclientу гостьовій ОС отримає IP-адресу, і процес налаштування Vagrant успішно завершиться.

Але все ще шукаю постійного виправлення.

Сподіваюся, це допомагає!

[ЗМІНЕНО ДО ДОДАТИ]: корисна пропозиція була додана до випуску № 455 GitHub що передбачає додавання до вашого конфігурації Vagrantfile:

config.ssh.max_tries = 150

Наразі це працює для мене, і, здається, має сенс, оскільки проблема, схоже, пов'язана з тимчасовим очікуванням - збільшення кількості спроб повинно збільшити ймовірність успіху процесу SSH. В першу чергу це питання, що переривається, тому я затримаюсь на деякий час, але пальці схрестили це, і це спрацює! Завдяки karel1980 за пропозицію виправити.


Видалення моєї невикористаної мережі лише для хостів у налаштуваннях VirtualBox працювало на мене! Дякую!
Герцог

1
Здається, що цей параметр був скасований станом на 1.3.X - github.com/berkshelf/berkshelf/pull/856
Jeremy Hajek

5

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

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

Примітка: у режимі gui можуть бути й інші проблеми, наприклад, для мене не передбачено функціонування бродячого, 0.7.5коли функція gui включена. Однак все-таки чудово налагоджувати фактичну скриньку.


2

Спочатку було встановлено тип моєї мережевої картки 82540EM. Я змінив його Am79C973і тепер Vagrant вгору працює щоразу. Я запустив кілька VM, навіть перезавантажив хост і він все ще працює.

Команда така:

VBoxManage modifyvm yourmachinename --nictype1 Am79C973

Не забудьте перепакувати і перечитати свою скриньку до Vagrant.

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


1

Якщо модуль ядра вже встановлений, спробуйте запустити VM безпосередньо з VirtualBox. Це покаже вам будь-які помилки при запуску, які виникають під час завантаження VM. Такі проблеми, як помилки файлової системи, перешкоджають правильному функціонуванню демона сервера SSH.


1

У мене була така ж проблема з osx (VirtualBox 4.1.0 і Vagrant 0.8.6), і для мене єдиною допомогою було:

  1. увійти через: gui by login / pass: бродячий / бродячий
  2. змініть файл “/etc/rc.local”, щоб він включав рядок “sh /etc/init.d/networking restart” безпосередньо перед “виходом 0 ″.
  3. відключити: gui
  4. бродяжне перезавантаження

Я знайшов це за адресою: https://github.com/mitchellh/vagrant/isissue/391 thx mikhailov.


1

У мене була ця сама проблема. У моєму випадку 64-розрядна емуляція не була включена. Увімкнення цієї функції в моїй біографії вирішило проблему.


1

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

Я змусив ВМ закрити через

VBoxManage controlvm потужність

Потім я змінив свою, Vagrantfileщоб включити цей рядок:

config.vm.boot_mode =: gui

Далі я перебіг

бродячий

У графічному інтерфейсі, що з’явився, мені довелося запустити утиліту 'fix fixer'.

Після запуску дискової утиліти мій VM був успішно завантажений, і тоді я міг запуститися 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-сервер не працює на VM. переконайтесь, що він встановлений

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.


OP не використовує Windows 7.
Таннер Фолкнер

Дякую r.tanner.f - Жодна ОС не вказана, це допомогло мені, сподіваюся, допомагає іншим.
Артистан

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

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"

Якщо це ім'я користувача не існує або не вдається увійти в систему з якихось причин, ні ви, ні Вагрант не зможете запустити SSH в VM. Таким чином, Vagrant "не зможе підключитися", навіть якщо VM насправді працює і працює належним чином.


0

Моє питання полягало в тому, vagrant sshщо взагалі нічого не зробить.

Я видалив ~/.ssh/configі проблему було вирішено. Скопіюйте файл кудись або перейменуйте його, якщо хочете зберегти його.


на локальній чи віддаленій системі?
Джеремі Гаек

0

Як і в інших, я використовував графічний інтерфейс (у мене це завжди для запобігання подібних проблем)

config.vm.boot_mode = :gui

Потім я використав меню VirtualBox, оскільки команди тут не працювали. Machine> Скидання в меню, тоді ssh тоді було можливо.


0

Я вимкнув запущений vm і створив нову базову скриньку:

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