DEV Community

JJ Asghar
JJ Asghar

Posted on

Getting remote xorg to display to local machine

I was talking to some coworkers recently. Working at IBM I have access to a cloud that allows me to use it for remote workloads. We started talking about getting xorg working on our remote machine and connect via X to my local laptop.

These are my notes to getting this working with a CentOS remote machine with a Ubuntu laptop.
Though any machine running xorg, and any machine that can take these configurations should work.

1) Spin up a remote machine with CentOS installed, I have tested this with CentOS 7 server and Ubuntu 18.04 laptop.

2) Confirm you can SSH to your remote machine, if you remote in as root I suggest creating a user and giving them sudo access. I suggest reading this link if you have never set it up.

3) SSH as your user with the following command:

ssh -X username@your_remote_machine

3.1) Now you might see this error, if so you should fix it by the following:

$ ssh -X username@server
X11 forwarding request failed on channel 0

You need to edit your sshd configuration:

[username@server]$ sudo vi /etc/ssh/sshd_config
# Note if you don't have sudo as your username ssh in as someone who can, or as root if you have access

Uncomment the following lines:

X11Forwarding yes
X11UseLocalhost no

And restart sshd:

[username@server]$ sudo service sshd reload
Redirecting to /bin/systemctl reload sshd.service

3.2) If you still see the error, make sure you have Xorg installed, if not run this command:

sudo yum groupinstall "X Window System"

4) Now if you don't have xauth installed you'll see this error:

ssh -X username@server
Last login: Tue Mar 12 11:27:17 2019 from localmachine
/usr/bin/xauth:  file /home/username/.Xauthority does not exist

Finally Go ahead and install dbus-x11, xauth and xeyes via this:

$ sudo yum install xauth xeyes dbus-x11

5) Go ahead and logout/exit from the machine after your setup, and ssh back in with the
following command and use xeyes to validate your set up. Run Control-C to close
xeyes (which is running on the remote machine but displayed locally).

ssh -X username@server
Last login: Tue Mar 12 12:09:32 2019 from localmachine
[username@server]$ xeyes

Congratulations! You now have a way to run remote X applications and display them
on your local machine. Go ahead install something like firefox or chrome
and go to and then open it on your local machine,
it should be radically different!

Discussion (0)