Comment puis-je prévenir l'avertissement No xauth data; utiliser de fausses données d'authentification pour le transfert X11?

66

Chaque fois que je lance une connexion ssh de mon Mac à un système Linux (Debian), je reçois cet avertissement:

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

Cela se produit également pour les outils utilisant ssh, tels que 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 l'horloge avec succès en local ou à distance.

sorin
la source
1
Quelle commande utilisez-vous pour SSH?
DerfK
@ DerfK juste ssh hostnamemais dans mon ~/.ssh/configj'ai ajouté il y a ForwardX11 yesquelque temps. C'est quand même quelque chose que je veux avoir là-bas.
sorin
Utiliser Ubuntu 16.04 LTS (août 2017) J'abandonne. En bout de ligne est que même si cela donne l'erreur, cela fonctionne. J'utilise ssh -Y hostnamedepuis Linux et ssh -x hostnamesous OpenSSH sous Windows.
SDsolar

Réponses:

66

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

debug1: No xauth program.

ce qui signifie que le chemin d'accès au xauthprogramme n'est pas correct . (Sur cette version de macOS, le chemin d'accès xauthn'est pas standard.) La solution a été d'ajouter cette ligne à /etc/ssh/ssh_config(peut-être /etc/ssh/configdans certaines configurations) ou à ~/.ssh/config(si vous n'avez pas de droits d'administrateur):

XAuthLocation /opt/X11/bin/xauth

Maintenant, le message d'avertissement est parti.

nmgeek
la source
10
OMG. J'ai essayé pendant des années de trouver une solution et cela a fonctionné. Années je dis! Notez que je l'ai fait en ajoutant cette ligne sous l' Host *entrée dans mon ~/.ssh/configfichier au lieu de l'édition /etc/ssh/ssh_config. La seule documentation que j'ai trouvée à ce sujet se trouvait dans man sshd_config.
Demitri
Cela a fonctionné pour moi aussi. Je comprends qu’à l’heure actuelle XQuartz n’est pas bien entretenu en raison d’un manque de financement. Je pense donc que les problèmes de portage comme celui-ci sont en réalité moins importants que je ne le pensais.
AlanObject
Sur High Sierra; c'est celui qui a fonctionné pour moi aussi.
mklein9
1
Notez que vous pouvez rencontrer ce problème même lorsque votre shell peut trouver xauth dans votre PATH! Je suppose que le client ssh désinfecte votre PATH pour des raisons de sécurité?
MarcH
1
Cette solution n'a pas fonctionné pour moi. J'utilise Cygwin sur Win7. Ajouter "XAuthLocation / usr / bin / xauth", soit sous l'entrée "Host *", soit avant cette ligne, dans ~ / .ssh / config, ne faisait aucune différence.
David M. Karr le
22

Trouvé la cause, ma ~/.ssh/configétait incomplète, vous avez besoin des deux:

Host *
    ForwardAgent yes
    ForwardX11 yes

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

sorin
la source
12
Je ne sais pas pourquoi cela est nécessaire / pertinent. ForwardAgentest utilisé pour permettre aux clés en cache ssh-agentd'entrer via plusieurs connexions SSH imbriquées. Cela ne devrait avoir aucune pertinence pour X11. Et fwiw, selon certains, ce n'est pas une bonne idée en termes de
underscore_d
2
Cela ne semble pas correct, ce qui est utile est de désactiver le transfert X11 ou de corriger la configuration de xauth pour la configurer. Il n'est pas lié aux agents SSH.
eckes
Cette solution n'a pas fonctionné pour moi.
David M. Karr le
Est-ce ~/.ssh/configsur le client macOS ou le serveur Linux? J'ai ces fichiers sur ni. J'ai un semblable/etc/ssh/sshd_config
Max Coplan
13

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

  • Première

Installez tout ce qui suit. Sur la fenêtre, installez Xming. Sur Ubuntu bash, utilisez sudo apt installpour installer ssh xauth xorg.

sudo apt install ssh xauth xorg
  • Seconde

Allez dans le dossier contient le ssh_configfichier, le mien est /etc/ssh.

  • Troisième

Modifier en ssh_configtant qu'administrateur (USE sudo). A l' intérieur ssh_config, supprimer la valeur de hachage #dans les lignes ForwardAgent, ForwardX11, ForwardX11Trusted, et définir les arguments correspondants yes.

# /etc/ssh/ssh_config

Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes
  • 4ème

Dans le ssh_configfichier, supprimez le hachage #avant avant Port 22et Protocol 2ajoutez é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 du ssh_configfichier, enregistrez-le lorsque nous quittons l'éditeur. Maintenant, allez dans le dossier ~ou $HOME, ajoutez export DISPLAY=localhost:0à votre .bashrcfichier et enregistrez-le.

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

On a presque fini. Redémarrez votre shell bash, ouvrez votre Xmingprogramme et utilisez-le ssh -X yourusername@yourhost. Ensuite, profitez de l'environnement graphique.

ssh -X yourusername@yourhost

Le problème concerne également le sous-système Ubuntu sous Windows et le lien se trouve à l'adresse suivante:

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

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

DestinyOne
la source
La question ne concerne pas Windows.
kasperd
Sous MacOS, c'est à peu près la même chose, les différences sont au lieu de Xming, nous devrions obtenir XQuartz, et le ssh_configfichier est à un emplacement différent, le mien l'est /private/etc/ssh.
DestinyOne
Et aussi, la dernière ligne ssh_configsera:XAuthLocation /opt/X11/bin/xauth
DestinyOne
2
Éditer nécessaire: XauthLocaion-> XauthLocation(cette édition est trop petite pour que je puisse la faire).
echristopherson
1
Outre l' installation xming, ssh, xauthet xorg(étape 1), la seule chose nécessaire pour moi étaitexport DISPLAY=localhost:0
Eponymous
11

Comme indiqué, il semble que xauthsur OS X, Yosemite a régressé pour adopter une ancienne version qui ne fonctionnait pas avec le $DISPLAYparamètre 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
client
la source
1
J'ai testé les mêmes lignes sur OS X 10.11 et je ne reçois aucune erreur. Toujours la même version de XQuartz.
sor
1
@guest Votre xauth generate $DISPLAY .commande a fonctionné sur mon Mac OS X High Sierra (10.13) et a résolu mon problème No xauth data; using fake authentication data for X11 forwarding..
SebMa
2

Il y a un bug dans MacOS pour le moment. Je suis tombé sur ça aussi. Le correctif pour moi impliquait l’ajout du texte suivant à mon fichier .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 manipulé correctement et doit donc être corrigé. :-)

Tux Rouge
la source
Je doute que cela résoudrait l'erreur dans les applications GUI OS X, telles que SourceTree.
sor
Confirmer que cela fonctionne sur Sierra pour exécuter emacs avec X, car le Mac est le serveur. cela devrait fonctionner dans les cas où le client est sur une machine distante
Mark Mullin
2

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).

Kepler Oliveira Filho
la source
1

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

Marcel Kraan
la source
Je peux confirmer qu’il s’agit d’une réponse sous Mac OS Sierra 10.12.4. Suppression de ~ / .Xauthority sur le serveur SSH: ~$ mv ~/.Xauthority ~/.Xauthority.bak Un nouveau cookie magique a été automatiquement installé dans ~ / .Xauthority une fois que je me suis connecté à nouveau. Aucun script Bash n'est requis du tout.
Kenneth Pegasus
1

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

export $(dbus-launch)

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

export XAUTHORITY=~/.Xauthority 

pour assurer à distance appelé avec ssh -X ̍ @ le trouvera.

Dans mon cas, Xauthority est un lien symbolique vers l'utilisateur d'origine /home//.Xauthority que je su depuis ...

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

avec les droits corrects:

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

il est donc accessible à et à. sera en mesure de déclencher des applications sur et afficher le résultat X-windowed sur son écran local à travers le compte proxy!

CONSEIL: Consultez la liste xauth ... si le cookie magique est activé.

tout informatique
la source
0

Je voudrais ajouter cela comme un commentaire, mais je n'ai pas assez de représentant. Ajouter une ligne supplémentaire à la solution de sorin a fonctionné pour moi.

Ouvrez votre fichier de configuration ssh avec vim ~/.ssh/config Ensuite ajoutez-y ces lignes:

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

Vous pouvez vérifier votre xauthposition avec:

which xauth
sanch
la source
Je ne sais pas si cela fonctionnerait vraiment car l'emplacement de xauth serait différent sur chaque machine distante. Le vôtre ressemble à un MacOS, mais Linux l’a placé à un emplacement différent. J'ai surtout commencé à désactiver complètement ForwardX11 car je ne l'utilise presque jamais.
sorin