If you need to run a program on a remote machine (e.g. to your office PC) with a graphical UI (and you trust the remote machine), you can use SSH X-Forwarding. I sometimes use this to connect to a virtual machine installed on my work PC from my home office.
Forwarding X over SSH
To use X forwarding, when connecting to the remote machine, and add -X to the ssh call. Now, when you start a program with a UI (e.g. virtualbox) in that SSH session, a window will open on your local machine. It will not be particularly snappy, but on a decent connection it will be usable.
Note: This allows the remote machine to gain access to your X session, which is a security risk. Only use -X if you trust the remote machine a 100%. Do not make it a default in your SSH config.
Configuring sshd
The remote machine may not be configured to forward X by default. In that case, when connecting via ssh -X, you will get a warning:
X11 forwarding request failed on channel 0
To fix that, you need to enable X forwarding on the target machine:
ssh remote-machinesudo vim /etc/ssh/sshd_config- Set
X11Forwarding yesand save -
sudo service sshd reload(existing connections will not be terminated)