27
votes

I can't seem to get Homestead running. It hangs at SSH auth method: private key.

The Homestead VM starts. I can go to VirtualBox and open the terminal window and login with vagrant:vagrant.

I can't vagrant ssh, ssh [email protected]:2204 or ssh [email protected] -p 2204.

None of my folders show up in the VM, but the VirtualBox says they are mapped.

Every time I vagrant up, I get:

vagrant up
Bringing machine 'homestead-7' up with 'virtualbox' provider...
==> homestead-7: Checking if box 'laravel/homestead' is up to date...
==> homestead-7: Clearing any previously set forwarded ports...
==> homestead-7: Fixed port collision for 80 => 8000. Now on port 2200.
==> homestead-7: Fixed port collision for 443 => 44300. Now on port 2201.
==> homestead-7: Fixed port collision for 3306 => 33060. Now on port 2202.
==> homestead-7: Fixed port collision for 5432 => 54320. Now on port 2203.
==> homestead-7: Fixed port collision for 22 => 2222. Now on port 2204.
==> homestead-7: Clearing any previously set network interfaces...
==> homestead-7: Preparing network interfaces based on configuration...
    homestead-7: Adapter 1: nat
    homestead-7: Adapter 2: hostonly
==> homestead-7: Forwarding ports...
    homestead-7: 80 (guest) => 2200 (host) (adapter 1)
    homestead-7: 443 (guest) => 2201 (host) (adapter 1)
    homestead-7: 3306 (guest) => 2202 (host) (adapter 1)
    homestead-7: 5432 (guest) => 2203 (host) (adapter 1)
    homestead-7: 22 (guest) => 2204 (host) (adapter 1)
==> homestead-7: Running 'pre-boot' VM customizations...
==> homestead-7: Booting VM...
==> homestead-7: Waiting for machine to boot. This may take a few minutes...
    homestead-7: SSH address: 127.0.0.1:2204
    homestead-7: SSH username: vagrant
    homestead-7: SSH auth method: private key
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.

I replaced the homestead insecure private key with my key on my box. I see a lot of people get Warning: Connection timeout. Retrying..., but I don't get that far.

I'm on a mac 10.11.6

Any help would be greatly appreciated!

10
can you open virtualbox and check the status of the VM in virtualbox, has it completed booting or not ?Frederic Henri
It is booted. I can open the VirtualBox VM screen and login as vagrant, password vagrant.Scott O-Town

10 Answers

88
votes

I had the same problem on macOS 10.12 today, and lost 6 hours trying to find a fix. Finally, after several reinstallations, reboots, and trial and error, I somehow got it to work by following these steps...

  1. Completely uninstall and reinstall Vagrant, VirtualBox, and Homestead.
  2. Ensure the homestead-7 box is shut down within the VirtualBox UI
  3. Right-click the homestead-7 box, and choose Settings
  4. Click 'Network'
  5. Under 'Adapter 1', which should be attached to NAT, click 'Advanced'
  6. Tick the box beside 'Cable Connected'
  7. Save settings, and reprovision Homestead with vagrant up --provision
  8. Run vagrant reload --provision to reprovision the machine

That should be it! I was able to SSH in after this, but not able to view Homestead sites through the browser (even though I'd configured the /etc/hosts file), but a simple reboot of the Mac seemed to fix this.

Given I don't know what exactly caused this in the first place, this might just be a bit of luck for my case, but let me know how you get on.

8
votes

I had this problem. I enabled Vt-x in the bios and it cleared it.

6
votes
  1. Open VirtualBox UI and enter the virtual machine.
  2. press Enter key to make system continue to boot.

And then you can see the vagrant up going on.

5
votes

Vagrant 2.1.2

vagrant destroy then vagrant up --provision worked for me.

I have noticed that it usually happens when new version of vagrant released

3
votes

Nothing here worked for me. I got into the situation of SSH auth method: private key because my mac black screened and crashed.

All that worked for me was a vagrant destroy then vagrant up --provision. Beware this will of course trash anything in your VM. but you should be using ephemeral principles anyway...

3
votes

Enable "Virtualization Technology" in BIOS settings

3
votes

If you are on Windows, you have done everything here and still have trouble, maybe this is the solution you need.

Open the Command Prompt as an administrator. Type the bcdedit command. You may find hypervisorlaunchtype Auto. If that is the case, type bcdedit /set hypervisorlaunchtype off to turn it off. Reboot and try again.

Hope this helps.

1
votes

I had to do a fsck. (disclaimer, I typed the commands from memory)

  1. Open VirtualBox UI and enter the virtual machine.
  2. If you see (initramfs), type exit
  3. fsck /dev/mapper/vagrant-vg-root -y
  4. reboot

Go back to your normal terminal and try a:

vagrant halt
vagrant up

For me, things were back to normal from here.

0
votes

Try to call vagrant up from CMD with admin rights

0
votes

If you're still stuck, here's something you can quickly rule out:

For me the issue was too little video memory, for some reason in Virtual Box my video memory was set to 4mb, the minimum is 12mb, I set it to 24mb (with vm off) and ran vagrant up again, and it fixed the issue!