Setup SSH access between VirtualBox Host and Guest VMs

Taken here

It is often necessary to have the ability to SSH between your Linux Host and your Guest virtual machines. In VirtualBox you can do this by simply configuring a second network interface on the Guest. This type of setup will not only allow SSH sessions between Host and Guest, but also between separate Guests themselves.

First off shutdown your Guest VM so that you can add a second network interface. By default you should have one interface already which is using NAT. Leave this alone as it provides access to the internet. Select the tab “Adapter 2″ and change “attached to” to “Host-only Adapter”.

Now boot up your Guest and pull up a terminal. Run ifconfig to see what base address eth1 has been assigned. You can use this address as a base to assign static IP addresses for each Guest VM. In this case inet addr: is the base IP address.
$ sudo ifconfig eth1
Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet addr: Bcast: Mask:
inet6 addr: XXXX::XXXX:XXXX:XXXX:XXXX/64 Scope:Link
RX packets:296 errors:0 dropped:0 overruns:0 frame:0
TX packets:237 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:32116 (31.3 KiB) TX bytes:37642 (36.7 KiB)

If you rely on DHCP you might get a different IP address each time your Guest VM reboots. If this is a problem, you need to setup a static IP address instead.

On a Debian based system edit /etc/network/interfaces to add the following lines. Change the address to your base IP address.
auto eth1
iface eth1 inet static

On a redhat based system edit this file /etc/sysconfig/network-scripts/ifcfg-eth1 and add the following lines. Change the IPADDR to your base IP address.

On your Linux Host you can now open a terminal add ssh to the Guest VM:
$ ssh ryan@

If you are having problems connecting, make sure that sshd in installed and running, and that the firewall on the is not blocking the SSH service on the VM.

You can create an entry in /etc/hosts so you don’t have to remember the IP address. virtualhost1

This allows you to use the virtual hostname instead.
$ ssh ryan@virtualhost1