Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Local Vagrant machine installed at IP address 10.0.0.23 with hostname lamp-vm.

Using vagrant ssh command, I can connect just fine and do everything I need.

This creates an error

$ ssh vagrant@lamp-vm -v -v

debug1: connect to address 10.0.0.23 port 22: Connection timed out
ssh: connect to host lamp-vm port 22: Connection timed out

My /etc/hosts file contains 10.0.0.23 lamp-vm.

My .ssh/config file looks like

Host lamp-vm
User vagrant
IdentityFile ~/.ssh/vagrant

I have tried the ssh command with and without the -i /path/to/.sh/identity_file as well.

How do I connect to my Vagrant Virtual Machine using SSH?

share|improve this question

This behavior is by design.

Vagrant uses VirtualBox NAT mode which means using port forwarding.

You can't SSH directly to your VM using NAT mode.

Using 'vagrant ssh' means vagrant will do the port forwarding for you so you don't have to worry about it. I think it will connect to localhost on port 2222 by default but it will try to also sort out any port number collisions.

If you need to SSH directly to your VM, switch the VM into host-only or bridged networking mode.

share|improve this answer
    
Thanks Philip but how would I go about solving that? Sorry for the inexperience. – csi Oct 23 '12 at 16:41
1  
I am using host-only mode and the problem persists. – csi Oct 23 '12 at 17:01
    
Should be the accepted answer. Very helpful to understand this - going via localhost on port 2222 was the route to a working Vagrant setup (for some reason I couldn't get the insecure_private_key key to work yet.) I found that the standard 'insecure private key' didn't work, so I ended up specifying a different private key and username in the Vagrantfile, but the localhost port 2222 part didn't need changing. – RichVel Mar 7 at 16:52

I faced this problem too and this was my final configuration that allowed me to ssh into my vagrant machine from anywhere in my host machine.

Vagrantfile:

...
# Setting up private_network to have virtual host
config.vm.network :private_network, ip: "192.168.33.10"

# Enable ssh forward agent
config.ssh.forward_agent = true
...

ssh into machine:

ssh vagrant@192.168.33.10

You will be prompted for password(default is vagrant):

vagrant@192.168.33.28's password:

And boom, you're in!

PS* You can use scp too anywhere in your host machine:

scp /path/to/src/file vagrant@192.168.33.10:/path/to/destination/file
share|improve this answer
    
While this works, it's quite fragile - I found that our Vagrantfile caused some edits to /etc/network/interfaces on the VirtualBox VM, which meant my SSH connection would drop. A localhost connection (ssh -p 2222 vagrant@localhost) won't be affected by this. – RichVel Mar 7 at 16:50

I would have added this as a comment, but I currently do not have enough rep to do so. I've written a how-to for setting your VM to bridged mode here:

http://askubuntu.com/questions/116861/setting-up-a-network-between-a-host-and-guest-virtual-machine/116909#116909

I hope you find this useful!

share|improve this answer
    
+1 here and on AU.SE; nice write-up. – msanford Oct 23 '12 at 18:25

Windows / Vagrant / Ubuntu

This is what worked for me and you can quickly figure out if this will work by running this on the ssh client.

ssh vagrant@127.0.0.1 -p 2222 -v

The -v will put it in verbose mode and display debug info...

$ ssh vagrant@127.0.0.1 -p 2222 -v
OpenSSH_7.1p1, OpenSSL 1.0.2e 3 Dec 2015
debug1: Connecting to 127.0.0.1 [127.0.0.1] port 2222.
debug1: Connection established.
debug1: identity file /home/Jamie/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6
debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6 pat OpenSSH_6.6.1* compat 0x04000000
debug1: Authenticating to 127.0.0.1:2222 as 'vagrant'
debug1: SSH2_MSG_KEXINIT sent
Connection closed by 127.0.0.1

So... SSH2_MSG_KEXINIT means the keys are being exchanged. This shortly fails...

In this case, I deleted my keys and regenerated them doing this on the VM. (http://ask.xmodulo.com/sshd-error-could-not-load-host-key.html)

$ ls -al /etc/ssh/sshkey
$ sudo rm -r /etc/ssh/ssh
key
$ sudo dpkg-reconfigure openssh-server

Once my keys were regenerated I was able to SSH into my Vagrant Box.

share|improve this answer

Can you ping the VM Christopher? It defiantly sounds like a small networking issue. Were you able to set it for bridge networking mode?

share|improve this answer

Destroyed the virtual machine
Reloaded the virtual machine
Everything worked

Not sure why but obviously something didn't load properly on the first provisioning.

share|improve this answer

Check out this comment: https://github.com/mitchellh/vagrant/issues/1936#issuecomment-21139674

Basically, even when using private networking, vagrant still does ssh on 127.0.0.1. Try that ssh command @127.0.0.1 instead of your private ip/hostname.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.