Lorsque je l’utilise ssh -X
sur 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.)
ssh
x11forwarding
warning
Daryl Spitzer
la source
la source
sudo apt-get install xauth
me dit que "xauth est déjà la version la plus récente"Réponses:
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.
la source
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 -X
et 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.
la source
brew install xquartz
la version 2.7.7 obsolète est actuellement installée.brew install Caskroom/cask/xquartz
devrait vous obtenir le dernier XQuartz avec HomeBrewbrew cask install xquartz
.Si vous recevez le même message même lorsque vous l'utilisez
-Y
, lexauth
programme est peut-être manquant sur le serveur. Sur les systèmes de type Debian, vous avez besoin duxauth
paquet. Sur les systèmes de type RedHat, vous avez besoin duxorg-x11-xauth
paquet.la source
"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.
la source
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
ForwardX11Trusted
sur"no"
pour les hôtes qui émettent cet avertissement. Vous pouvez placer ceci dans~/.ssh/config
ou/etc/ssh/ssh_config
, et vous pouvez rendre l'option spécifique à un hôte particulier en incluantHost <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.la source
ssh -Y
pour effectuer un transfert X11 de confiance, mais comment peut-on réparer le non fiable?/etc/ssh/ssh_config
côté client. MerciATTENTION (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_server
travaille de manière sécuriséela source
Si l'installation
xauth
ne fonctionne pas correctement, un.Xauthority
fichier 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.Xauthority
fichier peut résoudre ce problème.la source
Éliminer les problèmes côté serveur
Tout d’abord, éliminez tout problème côté serveur. Êtes-vous capable
ssh -X
de n'importe quel autre hôte avec succès? Est-cessh -Y
que le travailssh -X
ne 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
ssh
du serveur à lui-même en utilisant une fausse session:export DISPLAY=:44
# (Bourne shell) ousetenv DISPLAY :44
# (csh / tcsh)xauth add $DISPLAY MIT-MAGIC-COOKIE-1 1234
# Cookie Bogus juste pour ce testssh -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
xauth
commande 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 -X
sortieLe 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?
Si c'est le cas,xauth
:la source
Comme cela a déjà été expliqué ci-dessus, les éléments suivants ont fonctionné pour moi:
Editez ~ / .ssh / config pour ajouter les lignes
et maintenant ssh -X hostname fonctionne (XQuartz 2.7.11, macOS 10.4 Mojave)
la source
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.
la source
xauth add `hostname` / unix: 10 MIT-MAGIC-COOKIE-1` openssl rand -hex 16`
la source