How to Enable SSH X11 Forwarding on a Linux Server.

In today’s guide, we will look at how to enable SSH X11 forwarding on a Linux server. The first method will be forwarding through an additional Linux (Gateway) server. In second method we will directly connect to a Linux server with GUI.

Method 1: X11 Tunnel

First, connect to machine B and forward [localPort] to C:22 through

A$ ssh -L [localPort]:C:22 B
A$ ssh -X -p [localPort] localhost

Now we can run X11 programs on C and have them display on A

My Desktop Machine - 192.168.107.100
My Gateway server - 10.56.1.100
Some Linux server - 10.56.107.1

First, connect to machine B and forward [localPort] to C:22 through B

From the Ubuntu desktop Machine

$ ssh -L 67453:10.56.107.1:22 10.56.1.100
$ ssh -X -p 67453 localhost

Now we can run X11 programs on 10.56.107.1 and have them display on 192.168.107.100

Method 2: X11 Forwarding

Install only the required X11 package

# yum -y install xorg-x11-xauth xorg-x11-fonts-* xorg-x11-utils

To verify the forwarding install any GUI apps, In my case going with Scap Workbench to customize security standards.

# yum -y install scap-security-guide scap-workbench

SSH into the remote server with -X option.

# ssh -X root@servera

Run the scap-workbench command

# scap-workbench

Now we are able to launch the Scap workbench on a remote server and forward the graphical interface back to the local Linux desktop.

Troubleshooting steps:

In case, If still you have challenge related to listening on interface

Edit the sshd_config and make the below changes.

# grep -i "AddressFamily" /etc/ssh/sshd_config
# sed -i "s/#AddressFamily any/AddressFamily inet/g" /etc/ssh/sshd_config

Validated the change.

# grep -i "AddressFamily" /etc/ssh/sshd_config

Reload the config change for SSH service.

# systemctl reload sshd

That’s it, we are done with X11 forwarding.