Con l'inoltro SSH X11 (`ssh -X`), ottieni` Impossibile aprire il display` mentre prova ad eseguire le applicazioni X.


22

Sono in grado di accedere a sever utilizzando

ssh -X Hostip

ma quando eseguo il comando xclock mi dà questo errore

Error: Can't open display: localhost:11.0

Controllo il mio valore di visualizzazione utilizzando

echo $DISPLAY

e il risultato è

localhost:11.0

E l'inoltro X11 è impostato su SÌ nel file sshd_config

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

Qualche consiglio su cosa mi sto perdendo qui?


3
Hai provato -Yinvece -X?
Flup,

2
Inoltre, assicurati di comprendere le implicazioni dell'uso -Yanziché -X. Potresti anche voler guardare xhost.
un CVn del

1
Per RedHat / CentOS 7 (almeno), è necessario il pacchetto xorg-x11-xauth, come da mia risposta qui: unix.stackexchange.com/questions/138936/…
Mike S

Risposte:


18

Usa -Y. Dalla pagina man su ssh:

-Y Abilita l'inoltro X11 affidabile. Gli inoltri X11 affidabili non sono soggetti ai controlli dell'estensione X11 SECURITY.

Se i problemi persistono, puoi provare a impostare $DISPLAYl'IP della tua casella locale :

$ export DISPLAY='<ip_address>:11.0'

Potrebbe funzionare per impostarlo come

$ export DISPLAY='127.0.0.1:11.0'

Le persone sembrano avere questo problema comunemente quando ssh'ing da Mac OS X . Potresti anche voler impostare

X11UseLocalhost no

anche in questo caso.


1
Usando XQuartz non sono stato in grado di usare il flag -Y. "Connessione X11 rifiutata a causa di un'autenticazione errata."
Erik,

5
anche dopo aver provato i tuoi altri suggerimenti, non riesco ad aprire un display.
Erik,

2
Nessuno dei due ha funzionato neanche per me. Avevo bisogno di installare il supporto XWindow sul mio server Centos 7 (minimo) con: yum groupinstall "X Window System" -y
Mark Edington

@MarkEdington questo perché RedHat / CentOS richiedono il pacchetto xorg-x11-xauth, come da mia risposta qui: unix.stackexchange.com/questions/138936/…
Mike S

6

questo ha funzionato per me:

Modificare

X11UseLocalhost yes

per

X11UseLocalhost no

Grazie Don ha funzionato anche per me. Ti ho dato un voto. Credo che il problema che interferisce con il valore predefinito sia che la macchina specifica è abilitata per xhost.
LD James,

6
ospite? ospite? quale file di configurazione? grazie per completare la risposta
Philippe Gachoud,

L'ho fatto funzionare lasciando cadere le impostazioni a /etc/ssh/sshd_config.
llinfeng,

6

Ringraziamo /unix//a/12772/61349 per le loro istruzioni diagnostiche.

Assicurati che il tuo client SSH richieda l'inoltro X11 con il flag -v

ssh example.com -X -v

E cerca un messaggio specifico:

debug1: Requesting X11 forwarding with authentication spoofing.

Un altro segno problematico di telltail è la mancanza della DISPLAYvariabile d'ambiente beign impostata per te. Se è vuoto / non impostato, c'è qualcosa che non va. Almeno secondo lo stesso post accreditato sopra , queste variabili sono impostate automaticamente per te.


Stavo usando un Master Control SSH le mie connessioni ssh in questo modo:

Host <hostname>
    ControlMaster auto
    ControlPath ~/.ssh/control/%r@%h:%p
    ControlPersist 10m

La mia precedente connessione ssh non richiedeva X11Firwarding, quindi sshle opzioni di chiamata futura non venivano utilizzate. Quindi per me

ssh -Xveniva ignorato del tutto

Se non vedi "Richiesta di inoltro X11", ma vedi le sessioni di riutilizzo del muxer;

debug1: auto-mux: Trying existing master
debug1: mux_client_request_session: master session id: 10

Quindi è necessario uscire dall'attuale ControlMaster per tale connessione e riconnettersi con il flag -X / -Y.

Per arrestare ControlMaster

ssh -O check <hostname>

Master running (pid=2758)

(Questo uscirà da tutte le connessioni attive usando ControlMaster)

ssh -O exit <hostname>

Exit request sent.

3

Durante il tentativo di inoltro a XQuartz su macOS, ho risolto il problema eseguendo il sshcomando ( ssh -Ynel mio caso) dal terminale XQuartz (aperto facendo clic con il pulsante destro del mouse sull'icona XQuartz nel dock e facendo clic su Applicazioni> Terminale).


questo ha funzionato per me
dli

3

Ciò che ha risolto questo problema per me è semplicemente l'installazione di xauth, una volta fatto ha funzionato come un incantesimo!

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.