Comment déboguer "Connexion X11 rejetée en raison d'une mauvaise authentification"

10

J'ai un problème avec le transfert X via SSH. Je me bats depuis des lustres, mais personne ne semble aider.

Je prends maintenant un tact différent. Je voudrais savoir comment je déboguerais les erreurs?

Quels journaux dois-je consulter, quels indicateurs supplémentaires dois-je définir (-v, etc.) et que dois-je rechercher?

Modifier davantage:

Si je me connecte à Putty sur le serveur et que j'essaye xeyes, j'obtiens:

Proxy PuTTY X11: tentative de mauvais protocole d'autorisation Erreur: impossible d'ouvrir l'affichage: hôte local: 10.0

Si xauth generate $DISPLAYje reçois:

Proxy PuTTY X11: protocole d'autorisation incorrect tentéxauth: (argv): 1: impossible d'ouvrir l'affichage "localhost: 10.0".

wkdmarty
la source
Dans votre question de l'autre jour, vous décrivez différents symptômes. Souffrez-vous toujours de "Impossible d'ouvrir l'affichage", ou avez-vous résolu cela? Si vous avez résolu ce problème et qu'une des réponses à cette question vous a été utile, vous devez la sélectionner comme réponse pour récompenser la personne qui vous a aidé.
Kenster
D'accord, c'est une erreur différente maintenant, j'ai fermé cette question.
wkdmarty du
Vérifiez si cette réponse s'applique à votre serveur.
Kenster
Kenster, je n'avais aucun fichier rc sur le serveur, alors j'en ai créé un et collé le code. Aucune différence.
wkdmarty
Dans les journaux PuTTY, cela apparaît après que j'essaie d'exécuter un programme x (après la connexion SSH). 2014-09-01 15:16:38 Demande de connexion X11 reçue de 127.0.0.1:59566 2014-09-01 15:16:38 Ouverture de la connexion vers l'avant X11 réussie 2014-09-01 15:16:38 Il ne reste plus rien à envoyer, fermeture du canal 2014-09-01 15:16:38 Connexion X11 retransmise terminée
wkdmarty

Réponses:

13

Ma solution étape par étape:

1) Connectez-vous avec l'option -X racine de connexion à l'hôte distant

$ ssh -X [email protected]

2) Vérifiez si le fichier .Xauthority existant

[root @ localhost ~] # ls -al
[root @ localhost ~] # vim .Xauthority

3) copiez le fichier .Xauthority dans le répertoire de l'autre utilisateur

[root @ localhost ~] # cp .Xauthority / home / oracle /
cp: écraser `/home/oracle/.Xauthority '? y

4) définir les autorisations pour ce fichier

[root @ localhost ~] # chown oracle: oinstall .Xauthority
[root @ localhost ~] # chmod 0600 .Xauthority

5) Connectez-vous à l'utilisateur Oracle

[root @ localhost ~] # su - oracle

6) paramètre d'affichage dans localhost: 10.0

[oracle @ localhost ~] $ echo $ DISPLAY
localhost: 10.0
[oracle @ localhost ~] $ ls -al

7) répertorie les cookies xauth existants

[oracle @ localhost ~] $ xauth list
localhost.localdomain / unix: 11 MIT-MAGIC-COOKIE-1 310f1b02c1080e73059391c193a1881b
localhost.localdomain / unix: 10 MIT-MAGIC-COOKIE-1 41843db100830a2aa352641ac47bb759

8) ajouter

[oracle @ localhost ~] $ xauth add localhost.localdomain / unix: 10 MIT-MAGIC-COOKIE-1 41843db100830a2aa352641ac47bb75

9) test

[oracle @ localhost ~] $ xclock

J'espère qu'ils servent! @wcaraza

Walter Caraza
la source
2
La partie xauth add .... est l'astuce
Wei
les étapes 3. et 4. ont fait l'affaire pour moi
kiltek
6

Assurez-vous que l' xauthoutil SSH est installé sur le serveur SSH et que votre ~/.Xauthorityfichier est accessible en écriture. (Inexistant est également correct, tant qu'il xauthpeut le créer.)

Vérifiez si les données xauth sont mises à jour:

server$ xauth list

Essayez d'ajouter manuellement des données xauth factices (encore une fois, sur le serveur SSH) et voyez s'il y xautha des problèmes (par exemple, impossible de créer le fichier de verrouillage ou de modifier le fichier Xauthority lui-même):

server$ xauth add localhost:123 MIT-MAGIC-COOKIE-1 d7e2e4a8c5aa4430bfcc2abb436940d2

Si nécessaire, réexécutez sous strace.

Exécutez le service SSH en mode débogage, en définissant LogLevel DEBUG2dans la configuration du serveur ( /etc/ssh/sshd_config), ou en démarrant directement sshd en mode débogage:

server$ sshd -rddp 12234

(Dans cet exemple, 12234est le port SSH temporaire auquel vous devez vous connecter. N'importe quel port libre fera l'affaire.)

user1686
la source
Je vous remercie. Xauth sur le serveur peut écrire dans le fichier .Xauthority. Mais que devrait-il mettre? serveur = N40L, client = Lin001. La liste xauth sur N40L doit-elle afficher une entrée pour localhost: 10 MIT-MAGIC-COOKIE-1 {Lin001'sHexKey}?
wkdmarty
@wkdmarty: Oui, votre sshd écoutera sur un port TCP correspondant à afficher: 10 (ou: 11,: 12 ...), et cela apparaîtra comme "localhost: 10". En ce qui concerne la clé hexagonale, cependant, je ne sais pas vraiment si elle est censée utiliser la même clé - je pense que ssh en génère une nouvelle et agit comme un proxy ...
user1686
ok parfait, je peux voir que 0.0.0.0:6011 écoute. Ma variable DISPLAY indique N40L: 11.0, ce qui, selon moi, est erroné, je vais donc changer cela en DISPLAY = localhost: 10.0. Non, toujours en erreur. J'ai remarqué sur la connexion SSH cette ligne: debug2: x11_get_proto / usr / bin / xauth list: 0.0 2> / dev / null partout où j'ai vu la connexion SSH, cette ligne est différente ... montrant une génération de clé, jamais : 0,0.?
wkdmarty
@wkdmarty: Normalement, sshd devrait définir $ DISPLAY à la valeur correcte ... et le port 6011 correspond à l'affichage 11, et non 10, de toute façon.
user1686
1
"Ma variable DISPLAY indique N40L: 11.0 ... donc je vais changer ça". Pour être franc, laissez DISPLAY tranquille. Si ssh configure le transfert X11, il définira DISPLAY sur une valeur qui fonctionnera. Remplacer la valeur définie par ssh ne fera que rendre le processus de dépannage plus difficile.
Kenster
3

Ça marche, ça marche. haha.

ENFIN.

Après avoir découvert que ce n'était pas le système, en ajoutant un utilisateur de test (dont le transfert x a fonctionné "hors de la boîte"), j'ai pensé commencer à copier les fichiers de démarrage .bash * pour virginiser l'utilisateur "cassé".

Aucun des fichiers n'était différent, alors j'ai supprimé le répertoire .ssh des utilisateurs. Quand je suis entré, il a gémi à propos de "Le serveur a refusé notre clé", mais j'ai pu me connecter en utilisant un mot de passe. Une fois connecté, je pouvais x transférer parfaitement.

Je vais maintenant essayer de configurer à nouveau la clé et voir si je peux aussi le faire fonctionner. Ensuite, ce sera de retour à la normale.

wkdmarty
la source
Cela a aussi fonctionné pour moi. J'ai essayé toutes les autres méthodes, mais oui, apparemment, le problème résidait dans les clés.
Auxiliaire
1

Une autre chose qui peut provoquer ce problème est l'existence d'un ~/.ssh/rcfichier sur le serveur - la machine à laquelle vous vous connectez. Supprimez-le (ou renommez-le) pour résoudre le problème.

Ken Jackson
la source
1
Par man sshd, sshd s'exécute ~/.ssh/rcau lieu de xauth, @PimpJuiceIT.
Ken Jackson
Je vous remercie! Pour plus de détails, voir: docstore.mik.ua/orelly/networking_2ndEd/ssh/… . Il devrait être possible d'ajouter les commandes appropriées pour démarrer xauth dans le fichier rc, mais je ne l'ai pas trouvé.
Matt B.
0

rm ~/.Xauth* puis reconnectez-vous.

Cela fonctionne pour moi. Pour plus de détails

zzz92
la source