Que signifie «Avertissement: la configuration du transfert X11 non fiable a échoué: les données de clé xauth non générées» signifient-elles lorsque ssh'ing avec -X?


134

Lorsque je l’utilise ssh -Xsur mon Mac (sous OS X 10.6.7) pour me connecter à ma machine Ubuntu (11.04), je reçois l’avertissement suivant:

Avertissement: échec de la configuration du transfert X11 non approuvé: données de clé xauth non générées Avertissement: aucune donnée xauth; utiliser de fausses données d'authentification pour le transfert X11.

Est-ce que je peux faire quelque chose pour que cet avertissement disparaisse? Si non, puis-je l'ignorer en toute sécurité?

Le transfert X11 semble bien fonctionner, même si je vois ce message:

Xlib: L'extension "RANDR" manque dans l'affichage "localhost: 10.0".

Est-ce lié à l'avertissement? (Je suppose que non. Si ce n'est pas le cas, je poserai une nouvelle question à ce sujet.)


1
Le programme xauth est-il installé sur le serveur Ubuntu?
slubman

sudo apt-get install xauthme dit que "xauth est déjà la version la plus récente"
Daryl Spitzer,

Une fois connecté sur le serveur Ubuntu, quel est le résultat de 'which xauth'?
slubman

En effet, je pense que vous devriez lire cette explication: mail-archive.com/cygwin-xfree@cygwin.com/msg17927.html… vous pouvez ignorer cet avertissement
slubman

2
occasionnellement, cela peut être dû à des problèmes avec votre fichier ~ / .Xauthority. Si vous le supprimez, il sera recréé lors de votre prochaine tentative de connexion.
michael

Réponses:


145

Une raison quelconque pour laquelle vous ne souhaitez pas utiliser le drapeau -Y au lieu du drapeau -X?

Tout simplement, la différence entre -X et -Y est que -Y active le transfert X11 de confiance.


4
Non, je n'étais tout simplement pas au courant du drapeau -Y lorsque j'ai écrit la question. Je crois que cela s'est avéré être une solution. Changez votre réponse pour que ce ne soit pas une question (et ce serait bien si vous expliquiez brièvement la différence entre -Y et -C) et je l’accepterai.
Daryl Spitzer

y at-il des cas où vous ne voudriez pas utiliser -Y au lieu de -X?
Coq

@ Rooster pour les très vieux systèmes où -Y n'est pas pris en charge, je dirais
Petr

Conseil de dépannage: Exécutez "ssh -vv ..." et recherchez la ligne xauth et les messages d'erreur éventuels. Vous pouvez essayer d’exécuter la ligne xauth qu’elle affiche directement. Pour le mien, j'avais besoin que ce soit quelque chose comme "xauth list: 0" (fiable) pas "xauth -f / tmp / ssh ... list: 0" (non fiable). Quel -Y a corrigé et "ForwardX11Trusted yes" dans l'hôte distant / etc / ssh / ssh_config (ou ~ / .ssh / config) ont également été corrigés.
Curtis Yallop

Cette solution fonctionnait également avec Cygwin / X.
linux64kb

25

Si vous venez ici en 2015: même si tout le reste est configuré correctement, cela peut également arriver sous Mac OS X 10.10 Yosemite, lorsque vous utilisez ssh -Xet exécutez une version de XQuartz <= 2.7.7. La cause première est que les sockets d'affichage X11 sont écrits en dehors du chemin de recherche xauth: numéro n ° 2068 dans le suivi XQuartz.

Edit: Un correctif XQuartz a depuis été publié sur la nouvelle page d’accueil, xquartz.org , et l’installation de la dernière version à partir de cet emplacement (actuellement la version 2.7.9) résoudra le problème.


1
Je vous remercie! Je ne savais pas que le XQuartz que je venais de télécharger en haut de la page XQuartz n'était pas réellement la dernière version.
Craigds

Il est à noter que brew install xquartzla version 2.7.7 obsolète est actuellement installée.
Martin Cleaver

brew install Caskroom/cask/xquartzdevrait vous obtenir le dernier XQuartz avec HomeBrew
Nick

Ou plus court brew cask install xquartz.
Franklin Yu

17

Si vous recevez le même message même lorsque vous l'utilisez -Y, le xauthprogramme est peut-être manquant sur le serveur. Sur les systèmes de type Debian, vous avez besoin du xauthpaquet. Sur les systèmes de type RedHat, vous avez besoin du xorg-x11-xauthpaquet.


15

"Non approuvé" dans ce contexte signifie que vous ne faites pas confiance à la connexion. SSH utilisera des mesures de sécurité supplémentaires pour tenter de rendre le transfert X11 plus sûr. "Fiable" signifie que vous êtes absolument confiant que rien sur l'hôte distant n'aura accès à vos données Xauth et les utilisera pour surveiller vos frappes au clavier, par exemple.

Cette terminologie m'a en effet confondu pendant des années. Je pensais que les connexions "de confiance" étaient plus sûres. Mais c’est en réalité une option que vous êtes censé utiliser dans les situations où la connexion est fiable et que vous souhaitez exécuter, sans que des mesures de sécurité supplémentaires ne vous gênent. "Non approuvé" est celui qui rend (un peu) plus sûr de traiter avec un hôte distant non approuvé.

Une connexion "non sécurisée" tente de limiter ce qu'un chapeau noir pourrait vous faire en activant l'extension de sécurité X11 et en désactivant d'autres extensions dont vous n'avez pas besoin. C'est probablement pourquoi RandR est désactivé avec -X. Avez-vous besoin de pouvoir faire pivoter votre affichage X à partir de l'hôte distant?

Il est également important de noter que le transfert X11 "non approuvé" est désactivé après un certain temps pour vous empêcher de le laisser accidentellement. Les nouvelles tentatives d'ouverture de fenêtres échoueront par la suite. Cela m’a mordu plusieurs fois avant de lire suffisamment de documents pour comprendre ce qui se passait.


9

Je n'ai pas de configuration pouvant présenter ce comportement, c'est donc un coup dans le noir:

L'avertissement peut être supprimé si vous définissez la valeur ForwardX11Trustedsur "no"pour les hôtes qui émettent cet avertissement. Vous pouvez placer ceci dans ~/.ssh/configou /etc/ssh/ssh_config, et vous pouvez rendre l'option spécifique à un hôte particulier en incluant Host <hostname>sur la ligne ci-dessus. le <hostname>composant correspond à ce que vous tapez sur la ligne de commande (pas le nom d'hôte résolu) et peut inclure des caractères génériques.


On peut utiliser ssh -Ypour effectuer un transfert X11 de confiance, mais comment peut-on réparer le non fiable?
Pavel Šimerda

J'ai eu la même erreur dans Redhat et maintenant je peux le résoudre en éditant le fichier de configuration /etc/ssh/ssh_configcôté client. Merci
Gangadhar Jannu

7

ATTENTION (fatigué de lire des réponses incomplètes qui conduisent à une faille de sécurité)

1 / utiliser ssh -Y signifie ici avoir de fausses informations xauth qui sont mauvaises!

2 / ssh -X devrait fonctionner car XQuartz, une fois activé, utilise xauth. Le seul problème est que ssh recherche xauth dans / usr / X11R6 / bin et sur macos avec XQuartz, il se trouve dans / opt / X11 / bin

Résolution sécurisée:

1 / Activer la première option dans l' onglet Sécurité des préférences (Cmd-,) qui permet les connexions authentifiées

2 / ajouter

XAuthLocation /opt/X11/bin/xauth

dans $ HOME / .ssh / config

3 / ssh -X you_servertravaille de manière sécurisée


6

Si l'installation xauthne fonctionne pas correctement, un .Xauthorityfichier particulièrement corrompu pourrait être un fichier corrompu . Ce cas particulier a permis à certains clients X de fonctionner, mais pas à ceux avec une plus grande tendance à échouer avec les nouveaux écrans. Supprimer et recréer le .Xauthorityfichier peut résoudre ce problème.


6

Éliminer les problèmes côté serveur

Tout d’abord, éliminez tout problème côté serveur. Êtes-vous capable ssh -Xde n'importe quel autre hôte avec succès? Est-ce ssh -Yque le travail ssh -Xne fonctionne pas? Dans les deux cas, supposez que ssh + X11 est correctement configuré sur votre serveur et passez à la section suivante.

Si vous n'êtes pas en mesure de vérifier cela (vous n'avez qu'un seul ordinateur portable sous X11, par exemple), vous pouvez passer sshdu serveur à lui-même en utilisant une fausse session:

  1. export DISPLAY=:44# (Bourne shell) ou
    setenv DISPLAY :44# (csh / tcsh)
  2. xauth add $DISPLAY MIT-MAGIC-COOKIE-1 1234 # Cookie Bogus juste pour ce test
  3. ssh -X localhost env |grep DISPLAY

Résultat attendu: une variable DISPLAY doit être définie sur l'extrémité distante de la session ssh-to-self. Si vous n'obtenez aucun résultat, votre serveur est probablement mal configuré (par exemple, les bibliothèques X11 et / ou la xauthcommande peuvent être manquantes; ou la configuration de sshd peut être configurée pour refuser l'accès à X11).

Sur Mac: vérifiez que Xquartz est à jour

Selon la réponse de Will Angley

Examiner la ssh -vv -Xsortie

Le message d'erreur que vous citez est un symptôme qui peut avoir plusieurs causes. Réessayez avec , ce qui devrait vous donner des indices supplémentaires sur l’échec de la configuration du tunnel X11.ssh -X -vv remotehost

Voyez-vous le message suivant apparaître?

debug1: pas de programme xauth.
Si c'est le cas,

  1. Prenez note de l'emplacement de la commande sur votre système client xauth:
    quel xauth
  2. Ajoutez ce qui suit à la fin de votre ~ / .ssh / config (et ajoutez un commentaire pour vous rappeler de le conserver dans le futur):
    Hôte *
        XAuthLocation / opt / X11 / bin / xauth
    
    Ajustez ce chemin en fonction des résultats de l'étape 1 - Crédits à Jan-Willem Arnold

3

Comme cela a déjà été expliqué ci-dessus, les éléments suivants ont fonctionné pour moi:

Editez ~ / .ssh / config pour ajouter les lignes

Host *
    XAuthLocation /opt/X11/bin/xauth

et maintenant ssh -X hostname fonctionne (XQuartz 2.7.11, macOS 10.4 Mojave)


0

J'avais déjà la dernière version de XQuartz 2.7.11 installée, mais je pense avoir également mis à jour le système d'exploitation plusieurs fois depuis. J'ai réinstallé XQuartz 2.7.11, et maintenant cela fonctionne bien.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.