与Vagrant Homestead的SSH连接超时

时间:2014-07-11 10:38:12

标签: ssh vagrant virtualbox

我正在学习如何使用Laravel 4.2,它准备好使用Homestead。我以前用Apache在本地学习Laravel。在使用official docs设置Homestead时,我一直遇到超时。

我正在使用Vagrant 1.6.3,Homestead的最新版本(截至2014年7月10日),PHP 5.5.3(因为我使用的是Vagrant,这应该不重要?)和Laravel 4.2。

我使用以下Vagrantfile

VAGRANTFILE_API_VERSION = "2"

path = "#{File.dirname(__FILE__)}"

require 'yaml'
require path + '/scripts/homestead.rb'

Vagrant.configure("1") do |config|
  config.vm.boot_mode = :gui
end
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  Homestead.configure(config, YAML::load(File.read(path + '/Homestead.yaml')))
end

我使用以下Homestead.yaml

---
ip: "192.168.10.10"
memory: 2048
cpus: 1

authorize: /home/alex/.ssh/id_rsa.pub

keys:
    - /home/alex/.ssh/id_rsa

folders:
    - map: /home/alex/repos/www
      to: /home/vagrant/repos/www

sites:
    - map: homestead.app
      to: /home/vagrant/repos/www/learning/public

我的/etc/hosts文件包含以下行:

127.0.0.1   learning.app

当我拨打vagrant up时,我收到以下输出:

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'laravel/homestead' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 80 => 8000 (adapter 1)
    default: 3306 => 33060 (adapter 1)
    default: 5432 => 54320 (adapter 1)
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
[[17 more failed attempts]]
    default: Warning: Connection timeout. Retrying...
Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.

If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.

If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.

If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.

我以前的Apache设置是否会干扰?我错过了什么?谢谢。

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题'超时......',直到我发现在我的电脑的BIOS中禁用了虚拟化兼容性。 来源这个phorum。 http://laravel.io/forum/05-18-2014-trouble-getting-homestead-to-start-in-windows?page=1#reply-9067

修正了它的完美运作。

答案 1 :(得分:1)

启用VirtualBox GUI,您将能够更好地查看导致问题的原因。以下是有关如何以两种方式执行此操作的一些说明(您需要在Vagrantfile文件或homestead.rb文件中执行此操作):

enabling gui in Vagrantfile settings

这应该可以让你看到实际的启动画面并观察它。

你在Linux主机上运行Vagrant吗?