M HYPE SPLASH
// updates

VirtualBox Host ssh to Guest

By Emily Wilson

I have a mac host, and a VirtualBox Linux guest, currently using Bridged mode.

I need to be able to easily SSH into the guest from the host. It would be nice to use a hostname, but a never-changing IP address would be fine too (currently, the IP changes with each new network I join, and the hostname has never worked).

I also need internet access from the guest.

Other machines on the network do not need access to the guest.

What is the best way to configure my VirtualBox network?

1

5 Answers

First, you'll have to create the vboxnet0 interface.

VirtualBox > File > Preferences > Network > Host-only Networks > Add (you will get vboxnet0)

Then, run this on the host machine. You'll see a new interface, vboxnet0, appeared.

ifconfig

Shutdown your VM and do:

VM's Settings > System > check "Enable I/O APIC."
VM's Settings > Network > Adapter 2 > host-only vboxnet0

Start VM, on guest run

ifconfig

and check ip

Check these links:

There is also solution for NAT but I haven't checked it.

Configuring port forwarding with NAT in your host machine

VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"

connect to your linux via the port 2222 of your host machine

ssh -l -p 2222 localhost

For host-only networking with static ip check this:

It's for Solaris 10 and Ubuntu 16.04 but should be easy to adapt.

5

Between two Linux machines (a 32-bit Ubuntu host and a 64-bit Ubuntu VM), I managed to get ssh working using this Port Forwarding:

enter image description here

Then from your host system run

ssh -p 5679 127.0.0.1

Substitute 5679 with the "Host Port" entered into the Port Forwarding Rules.

2

If you don't want to mess around with port forwarding, you can set up a host-only adapter which appears as a host interface and then add an IP address inside that subnet in the guest.

Steps:

  • Create a host-only network in Virtualbox (GUI -> settings -> network). Type ifconfig in the host and see something like vboxnet0 with inet 192.168.50.1
  • in guest, add an IP address: ifconfig eth1 192.168.50.101 netmask 255.255.255.0 up
  • in host, execute ssh root@192.168.50.101

Further reading:

You might be better off configuring your virtual NIC in NAT mode if you are moving around quite a bit. Using NAT, the host (your PC) becomes the DHCP server and router for a private network which is created for your guest OSes. I'm pretty sure you can set a static address using NAT also...

However, I think the best solution is to suss out why name resolution isn't working for your guest VM :)

1

Very helpful, put me in the right direction. Thanks.

I had to go to > VirtualBox > File > Host Network Manager > vboxnet0 > Configure Adapter Manually > IPv4 Address and set it to the ifconfig of the guest. For some reason the host and the guest were giving me different IPs.

It is mentioned but to be explicit, I had to set the port forwarding port for 127.0.0.1 to 5679 and not the default ssh port 22, as that is already in use by the host's own ssh communication.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy