ssh -X -o options -A -p 22 user@centos-far-away-server
But, I am getting the following error on screen:
X11 forwarding request failed on channel 0
Last login: Sun Mar 23 15:58:51 2014 from 1.2.3.4
How do I fix “X11 forwarding request failed on channel 0” on Linux or Unix-like systems?
[donotprint]
Tutorial details | |
---|---|
Difficulty | Intermediate (rss) |
Root privileges | Yes |
Requirements | None |
Time | 5m |
Fixing forwarding request failed on channel 0 on a Linux/Unix based server
Login to your centos-far-away-server, enter:
$ ssh -A -p 22 user@centos-far-away-server
Edit /etc/ssh/sshd_config file, enter:
$ sudo vi /etc/ssh/sshd_config
Set the following two options:
X11Forwarding yes X11UseLocalhost no
Save and close the file. Reload the sshd, enter:
$ sudo /etc/init.d/sshd reload
Sample outputs:
Reloading sshd: [ OK ]
Install X authority file utility
You need to install xauth tool using yum command:
$ sudo yum install xauth
Sample outputs:
Loaded plugins: downloadonly, fastestmirror, security Loading mirror speeds from cached hostfile * base: mirrors.tummy.com * epel: mirror.steadfast.net * extras: centos-mirror.jchost.net * updates: centos.hostingxtreme.com Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package xorg-x11-xauth.x86_64 1:1.0.2-7.1.el6 will be installed --> Processing Dependency: libXmuu.so.1()(64bit) for package: 1:xorg-x11-xauth-1.0.2-7.1.el6.x86_64 --> Running transaction check ---> Package libXmu.x86_64 0:1.1.1-2.el6 will be installed --> Processing Dependency: libXt.so.6()(64bit) for package: libXmu-1.1.1-2.el6.x86_64 --> Running transaction check ---> Package libXt.x86_64 0:1.1.3-1.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved =========================================================================================================== Package Arch Version Repository Size =========================================================================================================== Installing: xorg-x11-xauth x86_64 1:1.0.2-7.1.el6 base 35 k Installing for dependencies: libXmu x86_64 1.1.1-2.el6 base 66 k libXt x86_64 1.1.3-1.el6 base 184 k Transaction Summary =========================================================================================================== Install 3 Package(s) Total download size: 285 k Installed size: 681 k Is this ok [y/N]: y Downloading Packages: (1/3): libXmu-1.1.1-2.el6.x86_64.rpm | 66 kB 00:00 (2/3): libXt-1.1.3-1.el6.x86_64.rpm | 184 kB 00:00 (3/3): xorg-x11-xauth-1.0.2-7.1.el6.x86_64.rpm | 35 kB 00:00 ----------------------------------------------------------------------------------------------------------- Total 1.2 MB/s | 285 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : libXt-1.1.3-1.el6.x86_64 1/3 Installing : libXmu-1.1.1-2.el6.x86_64 2/3 Installing : 1:xorg-x11-xauth-1.0.2-7.1.el6.x86_64 3/3 Verifying : libXmu-1.1.1-2.el6.x86_64 1/3 Verifying : libXt-1.1.3-1.el6.x86_64 2/3 Verifying : 1:xorg-x11-xauth-1.0.2-7.1.el6.x86_64 3/3 Installed: xorg-x11-xauth.x86_64 1:1.0.2-7.1.el6 Dependency Installed: libXmu.x86_64 0:1.1.1-2.el6 libXt.x86_64 0:1.1.3-1.el6 Complete!
Try ssh command as follows:
$ ssh -X -o options -A -p 22 user@centos-far-away-server
Sample outputs:
Last login: Sun Mar 23 16:25:09 2014 from 1.2.3.4
/usr/bin/xauth: creating new authority file /home/vivek/.Xauthority
Once you got ~/.Xauthority file, you can run X apps as follows over ssh:
$ xeyes &
$ my-cool-raid-app-manager &
Tip: Finding issues with X over ssh
If you still need hints, run ssh command as follows to debug problems:
$ ssh -v user@server-name-here
🐧 Get the latest tutorials on Linux, Open Source & DevOps via:
- RSS feed or Weekly email newsletter
- Share on Twitter • Facebook • 11 comments... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
This is really good. One minor detail: the yum install xauth command should be run on the centos-far-away-server .
X11UseLocalhost no
Looking at the sshd_config manpage, I don’t think you want to do that.
Why not?
this solve the problem, but i dont know why, if the man say
X11UseLocalhost
Specifies whether sshd(8) should bind the X11 forwarding server to the loopback address or to the wildcard address. By default, sshd
binds the forwarding server to the loopback address and sets the hostname part of the DISPLAY environment variable to “localhost”.
This prevents remote hosts from connecting to the proxy display. However, some older X11 clients may not function with this configu-
ration. X11UseLocalhost may be set to “no” to specify that the forwarding server should be bound to the wildcard address. The argu-
ment must be “yes” or “no”. The default is “yes”.
Strangely this
X11UseLocalhost no
made things work on a remote CentOS 7 machine., that was throwing the error: “no display specified”.
I can contribute a real weird cause for this problem in my case:
On my server I didn’t have syslog installed. So I got
X11Forwarding working, but there has been no out-
put when X11UseLocalhost had been set to no.
Thank you so much.
I only needed to add this line to the ssh conf file:
‘X11UseLocalhost no’
Now it works!
:D
Thanks for sharing, Vivek: This worked *almost* perfectly for me. The only change that needs to be made AFAICT: The xauth package has been superseded by the xorg-x11-xauth package.
Eric P.
There’s another issue that can cause this problem. It has to do with IPV4 and IPV6 configuration on the peer hosts. I’ve found that adding this line to sshd_config solves the problem:
AddressFamily inet
This AdressFamily inet (was default ‘any’ before i changed it) did the trick for me. I still wanted Localhost yes as my client did not like getting the display set to the ip # instead of ‘localhost’. Thanks all of you.
This worked for me on Ubuntu 14.x client and ubuntu 16.x server (modified server as outlined above):
X11UseLocalhost no