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-machine
sudo vim /etc/ssh/sshd_config
- Set
X11Forwarding yes
and save -
sudo service sshd reload
(existing connections will not be terminated)