Come posso eseguire il debug "Connessione X11 rifiutata a causa di un'autenticazione errata"


10

Ho un problema con l'inoltro X tramite SSH. Ho combattuto per anni, ma nessuno può sembrare d'aiuto.

Ora sto prendendo un tatto diverso. Vorrei sapere come eseguire il debug degli errori?

Quali log dovrei cercare, quali flag extra dovrei impostare (-v etc) e cosa dovrei cercare?

Ulteriore modifica:

Se accedo a Putty nel server e provo xeyes, ottengo:

Proxy PuTTY X11: tentativo di protocollo di autorizzazione errato Errore: impossibile aprire display: localhost: 10.0

Se xauth generate $DISPLAYottengo:

Proxy PuTTY X11: tentativo di protocollo di autorizzazione erratoxauth: (argv): 1: impossibile aprire il display "localhost: 10.0".


Nella tua domanda dell'altro giorno descrivi diversi sintomi. Soffri ancora di "Impossibile aprire il display" o l'hai risolto? Se hai risolto questo problema e una delle risposte a quella domanda è stata utile, dovresti selezionarla come risposta per premiare la persona che ti ha aiutato.
Kenster,

D'accordo, ora è un errore diverso, ho chiuso quella domanda.
wkdmarty,

Verifica se questa risposta si applica al tuo server.
Kenster,

Kenster, non avevo nemmeno un file rc sul server, quindi ne ho creato uno e incollato il codice. Nessuna differenza.
wkdmarty,

Nei registri PuTTY, questo viene visualizzato dopo che ho provato a eseguire un programma x (dopo il login SSH). 2014-09-01 15:16:38 Ricevuta richiesta di connessione X11 da 127.0.0.1:59566 2014-09-01 15:16:38 Apertura della connessione in avanti X11 riuscita 2014-09-01 15:16:38 Non è rimasto nulla da inviare, canale di chiusura 2014-09-01 15:16:38 Connessione X11
inoltrata

Risposte:


13

La mia soluzione passo dopo passo:

1) accedi con l'opzione -X root di login dell'host remoto

$ ssh -X root@192.168.1.39

2) controlla se esiste un file .Xauthority esistente

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

3) copia il file .Xauthority nella directory dell'altro utente

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

4) impostare le autorizzazioni per questo file

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

5) login oracle user

[root @ localhost ~] # su - oracle

6) impostazione di visualizzazione in localhost: 10.0

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

7) elenca i cookie xauth esistenti

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

8) aggiungendo

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

9) test

[oracle @ localhost ~] $ xclock

Spero che servano! @wcaraza


2
La parte aggiunta da xauth .... è il trucco
Wei

i passaggi 3. e 4. hanno fatto il trucco per me
kiltek

6

Assicurarsi che sul server SSH sia xauthinstallato lo strumento e che il ~/.Xauthorityfile sia scrivibile. (Inesistente va bene, purché xauthpossa crearlo.)

Controlla se i dati xauth sono in fase di aggiornamento:

server$ xauth list

Prova ad aggiungere manualmente i dati fittizi xauth (di nuovo, sul server SSH), e vedi se ci xauthsono problemi (ad es. Non essere in grado di creare il file di blocco o modificare il file Xauthority stesso):

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

Se necessario, rieseguire sotto strace.

Eseguire il servizio SSH in modalità debug, impostando LogLevel DEBUG2nella configurazione del server ( /etc/ssh/sshd_config) o avviando direttamente sshd in modalità debug:

server$ sshd -rddp 12234

(In questo esempio, 12234è la porta SSH temporanea a cui è necessario connettersi. Qualsiasi porta libera lo farà.)


Grazie. Xauth sul server può scrivere nel file .Xauthority. Ma cosa dovrebbe essere ambientato? server = N40L, client = Lin001. L'elenco xauth su N40L dovrebbe mostrare una voce per localhost: 10 MIT-MAGIC-COOKIE-1 {Lin001'sHexKey}?
wkdmarty,

@wkdmarty: Sì, il tuo sshd ascolterà su una porta TCP corrispondente al display: 10 (o: 11,: 12 ...), e questo apparirà come "localhost: 10". Per quanto riguarda la chiave esadecimale, tuttavia, non so davvero se debba usare la stessa chiave - penso che ssh ne generi effettivamente una nuova e funzioni da proxy ...
user1686

ok perfetto, posso vedere che 0.0.0.0:6011 sta ascoltando. La mia variabile DISPLAY indica N40L: 11.0, che sto pensando sia sbagliata, quindi lo cambierò in DISPLAY = localhost: 10.0. No, ancora errore. Ho notato sulla connessione SSH questa riga: debug2: x11_get_proto / usr / bin / xauth list: 0.0 2> / dev / null ovunque abbia visto la registrazione della connessione SSH, questa riga è diversa ... mostra una generazione di chiavi, mai : 0.0.?
wkdmarty,

@wkdmarty: Normalmente sshd dovrebbe impostare $ DISPLAY sul valore corretto ... e la porta 6011 corrisponde comunque alla visualizzazione 11, non 10.
user1686

1
"La mia variabile DISPLAY indica N40L: 11.0 ... quindi lo cambierò". Per essere schietto, lasciare DISPLAY da solo. Se ssh imposta l'inoltro X11, imposterà DISPLAY su un valore che funzionerà. Sostituire il valore impostato da ssh renderà più difficile il processo di risoluzione dei problemi.
Kenster,

3

Funziona, funziona. haha.

FINALMENTE.

Dopo aver scoperto che non era il sistema, aggiungendo un utente di prova (il cui inoltro x ha funzionato "out the box"), ho pensato di iniziare a copiare i file di avvio .bash * per vergognare l'utente "non funzionante".

Nessuno dei file era diverso, quindi ho eliminato la directory .ssh degli utenti. Quando ho registrato, si è lamentato di "Il server ha rifiutato la nostra chiave", ma ho potuto accedere utilizzando la password. Una volta effettuato l'accesso, potrei x inoltrarmi perfettamente.

Ora proverò di nuovo ad impostare la chiave e vedrò se riesco a farlo funzionare anche. Quindi tornerà alla normalità.


Questo ha funzionato anche per me. Ho provato tutti gli altri metodi, ma a quanto pare il problema risiedeva nelle chiavi.
Ausiliario

1

Un'altra cosa che può causare questo problema è l'esistenza di un ~/.ssh/rcfile sul server: la macchina a cui ti stai connettendo. Eliminalo (o rinominalo) per risolvere il problema.


1
Per man sshd, sshd viene eseguito ~/.ssh/rcinvece di xauth@PimpJuiceIT.
Ken Jackson,

Grazie! Per maggiori dettagli, consultare: docstore.mik.ua/orelly/networking_2ndEd/ssh/… . Dovrebbe essere possibile aggiungere i comandi appropriati per avviare xauth nel file rc, ma non l'ho trovato.
Matt B.

0

rm ~/.Xauth* e quindi riconnettersi.

Questo funziona per me. Per maggiori dettagli

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.