Install and Configure an Ubuntu VM
Get Ubuntu
Get the Ubuntu ISO image from ubuntu.com. The recommended version is 16.04.3 LTS (Long Term Support), desktop edition.
Get VirtualBox and VirtualBox Guest Additions
Make sure you have the VirtualBox Guest Additions ISO for your version of VirtualBox. I'm using VirtualBox 5.1.28. Save the Guest Additions ISO on your host computer along with the Ubuntu ISO. Get the Guest Additions ISO from here:
NOTE: Guest Additions versions prior to 5.1 will not work with Ubuntu 16.04.3. If you have an earlier version of VirtualBox, you should upgrade to the latest 5.1 version.
Create a new VM in VirtualBox for Ubuntu
Type: Linux
Version: Ubuntu (64-bit)
At least 2048 MB memory
At least 40 GB VDI
Network: Attached to: NAT
Create a port-forwarding rule for SSH
Create a port-forwarding rule so that you can use PuTTY (or other SSH client) to connect to the VM.
Go to "Network" settings in VirtualBox, add a port forwarding rule:
Name: SSH
Protocol: TCP
Host IP: 127.0.0.1
Host Port: 1022
Guest IP: <leave blank>
Guest Port: 22
Create Shared Folder
This is oriented to Windows users. If you're using a MAC or a Linux host computer, the details may be different. You can share any folder on the host computer with the Ubuntu VM. On Windows, a practical choice is to share the C:\Users folder, so that your Windows home directory will be accessible from the Ubuntu VM.
Go to "Shared Folders" settings in VirtualBox, add a share:
Folder Path: C:\Users
Folder Name: Users
Auto-mount: <checked>
Read-only: <unchecked>
Install Ubuntu in the VM
On the "Storage" panel in VirtualBox, click on "[ optical drive ]" and then "Choose Disk Image". Select your Ubuntu ISO image.
After selecting the ISO image, start the VM.
Follow the prompts to install Ubuntu.
Proxy Configuration (optional)
If you're behind a corporate firewall, configure some proxy settings. NOTE: your proxy configuration may require username and password credentials, not shown here.
Ubuntu system proxy setting:
System Settings → Network → Network proxy
(Replace "proxyhost" and port with your actual proxy information)
apt proxy setting:
Edit /etc/apt/apt.conf
and add one line at the top (replace "proxyhost:port" with your actual proxy information):
Acquire::http::Proxy "http://proxyhost:port";
Reboot the VM.
Install SSH Server
sudo apt update
sudo apt install openssh-server
Connect to the VM from your host computer
The PuTTY SSH client is popular. A connection to localhost:1022
(or whatever port you have forwarded) will go to the VM.
Install VirtualBox Guest Additions
On the "Storage" panel in VirtualBox, click on "[ optical drive ]" and then "Choose Disk Image". Select your VirtualBox Guest Additions ISO image.
In a VM terminal window, mount the cdrom:
sudo mkdir -p /media/cdrom
sudo mount /dev/cdrom /media/cdrom
Install necessary dependencies:
sudo apt update
sudo apt install gcc g++ dkms
Install the guest additions. NOTE: look for errors in the command output! If you see an error that says you are missing kernel headers, the most likely cause is that you are using a VirtualBox version that is too old. The error message is misleading.
cd /media/cdrom
sudo ./VBoxLinuxAdditions.run
Add yourself to the vboxsf user group (replace "userid" with your user ID):
sudo usermod -a -G vboxsf userid
Reboot the VM.
In a VM terminal window, verify that you can access your home directory on the host computer, which should be mounted under here:
/media/sf_Users