Ошибка “Vagrant не готов для SSH” на VirtualBox и Laravel Homestead

Вопрос или проблема

Версия Vagrant: 1.6.3
VirtualBox: 4.3.14
Ubuntu 14.04 LTS 64 Bit

Я уже довольно долго работаю над этим и не могу понять, в чем проблема. У меня настроены публичные и приватные ключи, и они работают. Я знаю, что это не проблема, так как они работали нормально, прежде чем я обновил Ubuntu с 32 Bit на 64 Bit. Я удалил и переустановил все упомянутое программное обеспечение и все равно не смог исправить ситуацию. Это происходит на экземпляре Laravel Homestead, но проблема возникает на всех моих окружениях, включая precise32 с домашней страницы Vagrant.

Когда я запускаю vagrant ssh-config, я получаю следующую ошибку:

    Поставщик для этой машины управляемой Vagrant сообщает, что она
    еще не готова для SSH. В зависимости от вашего поставщика это может означать
    разное. Убедитесь, что ваша машина создана и работает, и
    попробуйте снова. Кроме того, проверьте вывод команды `vagrant status`, чтобы проверить,
    что машина находится в ожидаемом состоянии. Если вы продолжаете получать
    это сообщение об ошибке, пожалуйста, ознакомьтесь с документацией по поставщику,
    который вы используете.

Этого не происходило, когда я использовал 32 Bit, но у меня были другие проблемы, которые и заставили меня перейти на 64 Bit.

Когда я запускаю vagrant up, это останавливается на этой строке:

==> по умолчанию: Запуск 'pre-boot' пользовательских настроек VM...
==> по умолчанию: Запуск VM...
==> по умолчанию: Ожидание загрузки машины. Это может занять несколько минут...
по умолчанию: SSH адрес: 127.0.0.1:2201
по умолчанию: SSH имя пользователя: vagrant
по умолчанию: Метод аутентификации SSH: приватный ключ

Любые мысли по этому поводу будут приветствоваться. Мне не нравится, что это происходит, так как совсем недавно я выпустил выпуск подкаста о том, как здорово было развиваться с Vagrant РАНЬШЕ, а сейчас это отнимает у меня время, чтобы попробовать привести это в порядок. Спасибо всем заранее!

Вам нужно добавить действительный публичный ключ для пользователя vagrant внутри VM. См.: https://stackoverflow.com/a/14719184/938598

В 2022 году у меня такая же проблема с построением vagrant box, запустив vagrant ssh-config, получил это сообщение. Но я решил это на Windows10, сделав следующее:

В Vagrantfile добавьте

config.ssh.private_key_path = ["~/.ssh/your_key", "~/.vagrant.d/insecure_private_key"]
config.vm.provision "file", source: "~/.ssh/your_key.pub", destination: "~/.ssh/authorized_keys"

vagrant up && vagrant ssh у меня работает.

Ответ или решение

Ошибка "Vagrant не готов к SSH" на VirtualBox и Laravel Homestead

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

1. Проверка состояния виртуальной машины

Первое, что нужно сделать, — это проверить, в каком состоянии находится ваша виртуальная машина. Запустите команду:

vagrant status

Это позволит вам убедиться, что машина действительно запущена. Состояние "running" указывает на то, что машина работает, в то время как другие состояния, такие как "poweroff" или "aborted", потребуют от вас выполнить команду vagrant up для её запуска.

2. Проблемы совместимости версий

Текущая версия Vagrant (1.6.3) и VirtualBox (4.3.14) могут вызывать некоторые проблемы совместимости. Рассмотрите возможность обновления до последних стабильных версий этих инструментов. Это часто помогает решить множество проблем, связанных с SSH и сетью. Убедитесь, что у вас установлены последовательно подходящие версии Vagrant и VirtualBox.

3. Обновление конфигурации Vagrantfile

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

config.ssh.private_key_path = ["~/.ssh/ваш_ключ", "~/.vagrant.d/insecure_private_key"]

config.vm.provision "file", source: "~/.ssh/ваш_ключ.pub", destination: "/home/vagrant/.ssh/authorized_keys"

Эти строки помогут настроить Vagrant на использование вашего публичного ключа для доступа к виртуальной машине.

4. Проверка параметров сети

Убедитесь, что ваша виртуальная машина получает правильные сетевые настройки. Попробуйте явно указать параметры сети в Vagrantfile. В частности, проверьте, что вы используете корректный сетевой интерфейс NAT, и добавьте такие строки:

config.vm.network "forwarded_port", guest: 80, host: 8080

Это создаст перенаправление порта, что может помочь в случае проблем с сетевым подключением.

5. Перезагрузка и повторный запуск зависимых сервисов

Иногда простой перезапуск сервисов или самой виртуальной машины решает проблему. Попробуйте выполнить следующие команды:

vagrant reload

Если это не помогает, можно полностью удалить VM и создать новую:

vagrant destroy
vagrant up

6. Просмотр логов

Если проблема все еще не решена, проверьте логи VirtualBox для получения дополнительных подробностей о том, что может вызывать данную ошибку. Логи могут находиться в директории ~/VirtualBox VMs/<имя вашей VM>/Logs.

7. Вывод сообщества

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

Заключение

Ошибка "Vagrant не готов к SSH" обычно связана с проблемами конфигурации VM, совместимости версий или отсутствием корректно настроенных ключей. Следуя приведенным выше шагам, вы сможете диагностировать и исправить сложившуюся ситуацию. Помните, что обновление программного обеспечения и правильная настройка конфигурации — гэта основные аспекты успешной работы с Vagrant и VirtualBox.

Оцените материал
Добавить комментарий

Капча загружается...