VirtualBox Host ssh to Guest
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?
15 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.
ifconfigShutdown your VM and do:
VM's Settings > System > check "Enable I/O APIC."
VM's Settings > Network > Adapter 2 > host-only vboxnet0Start VM, on guest run
ifconfigand 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 localhostFor host-only networking with static ip check this:
It's for Solaris 10 and Ubuntu 16.04 but should be easy to adapt.
5Between two Linux machines (a 32-bit Ubuntu host and a 64-bit Ubuntu VM), I managed to get ssh working using this Port Forwarding:
Then from your host system run
ssh -p 5679 127.0.0.1Substitute 5679 with the "Host Port" entered into the Port Forwarding Rules.
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
ifconfigin the host and see something likevboxnet0withinet 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 :)
1Very 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.