1

У меня есть среда Vagrant, которая требует от меня переадресации порта 80, поэтому я запускаю его под sudo на машине с OS X. Это всегда было хорошо, пока я недавно не обновился до Vagrant 1.2.2. Теперь он не загружается.

[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.

Поскольку я работаю под sudo , машина никогда не добавляется в графический интерфейс Virtualbox, но это всегда было так для этой среды.

Я не получаю никаких указаний на то, что была проблема с дополнениями - потенциальный источник этой ошибки, из того, что я прочитал. Я могу просто начать работу, если я перейду на порт 8080 на хост-компьютере. Я не могу использовать приложение, но сама виртуальная машина загружается и готовится красиво.

Насколько я могу судить, единственное, что изменилось:

  1. Я обновил свою версию Vagrant
  2. Я обновил Vagrantfile проекта, чтобы использовать синтаксис v2.

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

ОБНОВЛЕНИЕ 27 ИЮНЯ

Похоже, это проблема с ключом SSH, если VAGRANT_LOG=DEBUG :

DEBUG ssh: Checking key permissions: /Users/robwilkerson/.vagrant.d/insecure_private_key
 INFO ssh: SSH not up: #<Vagrant::Errors::SSHKeyBadOwner: The private key to connect to the machine via SSH must be owned
by the user running Vagrant. This is a strict requirement from
SSH itself. Please fix the following key to be owned by the user
running Vagrant:

/Users/robwilkerson/.vagrant.d/insecure_private_key>
 INFO subprocess: Starting process: ["VBoxManage", "showvminfo", "3422bba7-8f35-42ad-ba1a-c127c6cb3cf6", "--machinereadable"]

Я предполагаю, что ему нужен ключ, принадлежащий root так как я нахожусь под sudo , но если это так, почему он не смотрит на root 's ~/.vagrant.d/? V2 стал более строгим об этом? Я был в состоянии sudo vagrant up штрафа до обновления. Поскольку это моя единственная среда разработки, для которой требуется sudo , я бы не стал менять владельца ключа. Есть ли другой способ?

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

2 ответа2

2

Я не нашел лучшего решения для этого, чем переключать владельца закрытого ключа при переключении между этим проектом и другими. Для того, чтобы это было немного хуже, я создал функцию zsh :

vkey() { sudo chown "$*":staff ~/.vagrant.d/insecure_private_key; }

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

$ vkey <new_owner_username>
2

Попробуйте изменить владельца vagrant.d :

# cd ~
# sudo chown -R root .vagrant.d/

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