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.
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.
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.
ssh -X
pour obtenir un environnement GUI sur un serveur distantInstallez 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
Accédez au dossier contenant ssh_config
fichier, le mien est /etc/ssh
.
É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
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
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
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
)
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
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é. :-)
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).
je viens de supprimer ~/.Xauthority (machine de destination) de mon dossier racine et ssh -X 192.168.123.1 à nouveau et ik a fonctionné.
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.
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
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.
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.