web-dev-qa-db-fra.com

Comment puis-je empêcher l'avertissement Aucune donnée xauth; utiliser de fausses données d'authentification pour le transfert X11?

Chaque fois que j'initie une connexion ssh de mon Mac à un Linux (Debian), j'obtiens cet avertissement:

No xauth data; using fake authentication data for X11 forwarding.

Cela se produit également pour les outils qui utilisent ssh, comme git ou Mercurial.

Je veux juste apporter une modification locale à mon système afin d'éviter que cela n'apparaisse.

Remarque: J'ai un serveur X11 (XQuartz 2.7.3 (xorg-server 1.12.4)) sur mon Mac OS X (10.8.1) et il fonctionne correctement, je peux démarrer correctement l'horloge localement ou à distance.

76
sorin

Trouvé la cause, mon ~/.ssh/config était incomplet, vous avez besoin des deux:

Host *
    ForwardAgent yes
    ForwardX11 yes

Mon erreur est que je n'ai inclus que l'option ForwardX11.

24
sorin

Aucune des solutions affichées n'a fonctionné pour moi. Mon système client (de bureau) exécute macOS 10.12.5 (Sierra). J'ai ajouté -v aux options de la commande ssh et il m'a dit,

debug1: No xauth program.

ce qui signifie qu'il n'a pas un chemin correct vers le programme xauth. (Sur cette version de macOS, le chemin vers xauth n'est pas standard.) La solution consistait à ajouter cette ligne à /etc/ssh/ssh_config (peut être /etc/ssh/config dans certaines configurations) ou dans ~/.ssh/config (si vous ne disposez pas des droits d'administrateur):

XAuthLocation /opt/X11/bin/xauth

Maintenant, le message d'avertissement a disparu.

80
nmgeek

Laisser Ubuntu bash sous Windows 10 s'exécuter ssh -X pour obtenir un environnement GUI sur un serveur distant

  • Première

Installez tous les éléments suivants. Sur Windows, installez Xming. Sur Ubuntu bash, utilisez Sudo apt install à installer ssh xauth xorg.

Sudo apt install ssh xauth xorg
  • Seconde

Accédez au dossier contenant ssh_config fichier, le mien est /etc/ssh.

  • Troisième

Éditer ssh_config en tant qu'administrateur (USE Sudo). À l'intérieur ssh_config, supprimez le hachage # dans les lignes ForwardAgent, ForwardX11, ForwardX11Trusted et définissez les arguments correspondants sur yes.

# /etc/ssh/ssh_config

Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes
  • Forth

Dans ssh_config fichier, supprimez le hachage avant # avant Port 22 et Protocol 2, et ajoutez également une nouvelle ligne à la fin du fichier pour indiquer l'emplacement du fichier xauth, XauthLocation /usr/bin/xauth, n'oubliez pas d'écrire votre propre chemin d'accès au fichier xauth.

# /etc/ssh/ssh_config

#   IdentifyFile ...
    Port 22
    Protocol 2
#   Cipher 3des
#   ...
#   ...
    ...
    ...
    GSSAPIDelegateCredentials no
    XauthLocation /usr/bin/xauth
  • Cinquième

Maintenant que nous avons terminé l'édition ssh_config fichier, enregistrez-le lorsque nous quittons l'éditeur. Maintenant, allez dans le dossier ~ ou $HOME, ajouter export DISPLAY=localhost:0 à ton .bashrc fichier et enregistrez-le.

# ~/.bashrc
...
...
export DISPLAY=localhost:0
  • Dernier

On a presque fini. Redémarrez votre shell bash, ouvrez votre programme Xming et utilisez ssh -X yourusername@yourhost. Profitez ensuite de l'environnement GUI.

ssh -X yourusername@yourhost

Le problème est également dans le sous-système Ubuntu sous Windows, et le lien est à

https://Gist.github.com/DestinyOne/f236f71b9cdecd349507dfe90ebae776

Remarque: le texte lié comprend 2 fautes de frappe (XauthLocaion au lieu de XauthLocation)

15
DestinyOne

Comme indiqué, il semble que xauth sur OS X Yosemite ait régressé vers une ancienne version qui ne fonctionne pas avec le paramètre $DISPLAY De XQuartz:

% xauth -V
1.0.9
% xauth generate $DISPLAY .
xauth: (argv):1:  bad display name "/private/tmp/com.Apple.launchd(...)/org.macosforge.xquartz:0" in "add" command
11
guest

Il existe actuellement un bogue dans MacOS. Je suis tombé là-dessus aussi. Le correctif pour moi consistait à ajouter ce qui suit à mon .bash_profile

dispdir=`dirname $DISPLAY`
dispfile=`basename $DISPLAY`
dispnew="$dispdir/:0"
if [ -e $DISPLAY -a "$dispfile" = "org.x:0" ]; then
  mv $DISPLAY $dispnew
fi
export DISPLAY=$dispnew

Essentiellement, le nom du canal de fichier associé à votre racine X ne peut pas être géré correctement et doit donc être corrigé. :-)

2
Red Tux

Comprenant

XAuthLocation/opt/local/bin/xauth dans ~/.ssh/config

dans mon macOS Sierra 10.12.6 a fonctionné pour moi. Un petit changement par rapport à la réponse 7).

2

je viens de supprimer ~/.Xauthority (machine de destination) de mon dossier racine et ssh -X 192.168.123.1 à nouveau et ik a fonctionné.

1
Marcel Kraan

Dans mon cas, c'était le problème de .Xauthority contenant le cookie Magic non transmis, Fabby le http://askubuntu.com/questions/571116/ recommande le 2014-11-14 d'ajouter cette ligne à la fin du .bashrc ou. profil pour permettre le transfert des clés xauth entre les utilisateurs lors de l'appel de su:

export $(dbus-launch)

J'ai également ajouté précédemment:

export XAUTHORITY=~/.Xauthority 

pour vous assurer que la télécommande appelée avec ssh -X ̍ @ la trouvera.

Dans mon cas .Xauthority est un lien symbolique vers l'utilisateur d'origine /home//.Xauthority Je su de ...

  cd /home/<child_user>;ln -sf /home/<parent_user>/.Xauthority .xAuthority

avec les droits appropriés:

  Sudo chown <parent_user> /home/<parent_user>/.profile
  chmod a+rw /home/<parent_user>/.profile 

il est donc accessible à et à. pourra déclencher des applications et afficher le résultat X-windowed sur son écran local dans tout le compte proxy!

CONSEIL: Vérifiez la liste xauth ... si reflète le cookie magique.

1
all-informatic

J'ajouterais ceci en tant que commentaire, mais je n'ai pas assez de représentants. L'ajout d'une ligne supplémentaire à la solution de sorin a fonctionné pour moi.

Sur la machine cliente, modifiez votre fichier de configuration ssh avec vim ~/.ssh/config

Ajoutez-y ensuite ces lignes:

Host *
    ForwardAgent yes
    ForwardX11 yes
    XAuthLocation /opt/X11/bin/xauth

Vous pouvez vérifier votre emplacement xauth avec:

which xauth
1
ssanch

Cela a commencé à m'arriver après avoir déplacé mon installation Cygwin d'un PC à un autre. Le problème semblait être le changement de nom d'hôte: le cookie magique ne correspondait plus au nom d'hôte du nouveau PC.

Fonctionnement

touch ~/.Xauthority
xauth add :0 . `mcookie`

sur l'installation locale de Cygwin a résolu le problème pour moi - xauth list répertorie désormais un cookie magique associé au nom d'hôte correct du nouveau PC et l'avertissement ne s'affiche plus.

1
Irfy

Mon objectif était d'obtenir une connexion silencieuse en ligne de commande basée sur ssh à des hôtes Linux à partir de mon client macOS. Par exemple. Je ne voulais pas voir de bannières ou de messages. Il suffit de configurer la connexion basée sur le certificat pour pouvoir taper un alias sur le et obtenir une invite sur la machine hôte. Pour ce faire, j'ai fait ce qui suit:

  • Sur Debian 10 Linux Host J'ai touché (par exemple créé) ~/.hushlogin

  • Cependant, sur macOS Catalina client ssh J'obtenais le message:

    Aucune donnée xauth; en utilisant de fausses données d'authentification pour le transfert X11.

Après avoir confirmé xauth emplacement binaire, j'ai ajoutéXAuthLocation /opt/X11/bin/xauth à /etc/ssh/sshd_config sur le client macOS, mais cela n'a pas fonctionné pas lorsque j'ai utilisé cette commande:

ssh -Y user@debian10

En dernière analyse réponse de @ ssanch l'a fait a fonctionné pour moi. Mais avant de découvrir cette solution, je suis tombé sur une solution de contournement qui pourrait aider certaines personnes:

ssh -Yy user@Host

Ajout de minuscules -y L'indicateur à la ligne de commande ssh lui fait envoyer sa sortie de journal à syslog au lieu de stderr, et cela permet également la connexion silencieuse souhaitée.

0
clearlight