How can I prevent the warning No xauth data; using fake authentication data for X11 forwarding?
Every time I initiate an ssh connection from my Mac to a Linux (Debian) I do get this warning:
No xauth data; using fake authentication data for X11 forwarding.
This also happens for tools that are using ssh, like git or mercurial.
I just want to make a local change to my system in order to prevent this from appearing.
Note: I do have X11 server (XQuartz 2.7.3 (xorg-server 1.12.4)) on my Mac OS X (10.8.1) and it is working properly, I can successfully start clock locally or remotely.
Solution 1:
None of the posted solutions worked for me. My client (desktop) system is running macOS 10.12.5 (Sierra). I added -v
to the options for the ssh
command and it told me,
debug1: No xauth program.
which means it doesn't have a correct path to the xauth
program. (On this version of macOS the path to xauth
is nonstandard.) The solution was to add this line to /etc/ssh/ssh_config
(may be /etc/ssh/config
in some setups) or in ~/.ssh/config
(if you don't have admin rights):
XAuthLocation /opt/X11/bin/xauth
Now the warning message is gone.
Solution 2:
Found the cause, my ~/.ssh/config
was incomplete, you need both:
Host *
ForwardAgent yes
ForwardX11 yes
My mistake was that I included only the ForwardX11 option.
Solution 3:
Letting Ubuntu bash on Windows 10 run ssh -X
to get a GUI environment on a remote server
- First
Install all the following. On Window, install Xming
. On Ubuntu bash, use sudo apt install
to install ssh xauth xorg
.
sudo apt install ssh xauth xorg
- Second
Go to the folder contains ssh_config
file, mine is /etc/ssh
.
- Third
Edit ssh_config
as administrator(USE sudo
). Inside ssh_config
, remove the hash #
in the lines ForwardAgent
, ForwardX11
, ForwardX11Trusted
, and set the corresponding arguments to yes
.
# /etc/ssh/ssh_config
Host *
ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes
- Forth
In ssh_config
file, remove the front hash #
before Port 22
and Protocol 2
, and also append a new line at the end of the file to state the xauth file location, XauthLocation /usr/bin/xauth
, remember write your own path of xauth file.
# /etc/ssh/ssh_config
# IdentifyFile ...
Port 22
Protocol 2
# Cipher 3des
# ...
# ...
...
...
GSSAPIDelegateCredentials no
XauthLocation /usr/bin/xauth
- Fifth
Now since we are done editing ssh_config
file, save it when we leave the editor. Now go to folder ~
or $HOME
, append export DISPLAY=localhost:0
to your .bashrc
file and save it.
# ~/.bashrc
...
...
export DISPLAY=localhost:0
- Last
We are almost done. Restart your bash shell, open your Xming
program and use ssh -X yourusername@yourhost
. Then enjoy the GUI environment.
ssh -X yourusername@yourhost
The problem is also in Ubuntu subsystem on Windows, and the link is at
https://gist.github.com/DestinyOne/f236f71b9cdecd349507dfe90ebae776
Note: the linked text includes 2 typos (XauthLocaion
instead of XauthLocation
)