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
[username@server]$

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 https://whatsmyip.org and then open it on your local machine,
it should be radically different!

Discussion (0)