Display X11 inoltrato da SSH da Linux a Mac perso dopo qualche tempo


10

Ho un nuovo e seccante problema con ssh che inoltra la mia connessione X11 quando accedo da un Mac (10.7.2) a Linux (Ubuntu 8.04). Non ho problemi a usare ssh -X per accedere al computer remoto e avviare un'applicazione basata su X11 da quella shell.

Quello che è iniziato di recente è che ulteriori invocazioni di applicazioni X11 dalla stessa shell, dopo un po '(nell'ordine delle ore), non sono in grado di avviarsi perché il display inoltrato è bloccato (presumo). Quando tento di avviare xterm, ad esempio, ricevo il solito messaggio su una impostazione DISPLAY errata, come ad esempio:

Errore xterm Xt: impossibile aprire display: localhost: 10.0

Ma l'applicazione X11 che ho avviato proprio quando ho effettuato l'accesso funziona ancora perfettamente, usando lo stesso identico display (localhost: 10.0), solo che è stato avviato in precedenza.

Ho attivato la registrazione dettagliata in sshd_config e lo vedo nel file /var/log/auth.log in risposta al tentativo fallito di avvio di xterm:

sshd [22104]: canale 8: apertura non riuscita: amministrativamente vietata: apertura non riuscita

Se faccio di nuovo ssh -X sul server, avviando una nuova shell e ricevendo un nuovo display (localhost: 11.0), lo stesso processo si ripete: le applicazioni X11 avviate in fase iniziale vengono eseguite correttamente fino a quando le tengo aperte (giorni ), ma dopo alcune ore non posso avviarne di nuovi da quella shell.

Particolari: OpenSSH sshd server in esecuzione su Ubuntu 8.04, display inoltrato a un Mac con Lion (10.7.2) con il server Apple X predefinito. I sistemi sono collegati su una LAN Ethernet con un singolo switch tra di loro. Nessuna macchina esegue un firewall. Fino a poco tempo fa (qualche giorno fa) questa installazione ha funzionato perfettamente, quindi sono confuso su dove guardare dopo. Non sono affatto un esperto di X11 o SSH ma ho una buona esperienza UNIX / Linux. Nulla di ovvio è cambiato nella configurazione client o server, anche se ho provato a cambiare alcune opzioni per provare a eseguire il debug di questo, come impostare TCPKeepAlive di sshd_config su no e impostare "host + localhost" (si può dire che sono stato su Google).

Quando si accede da un laptop Linux 11.10 allo stesso host remoto sulla stessa rete e si passa, questo problema non si verifica: un xterm può essere invocato con successo ore dopo dalla stessa shell di accesso ssh mentre lo stesso esperimento dal Mac fallisce ( testato questa mattina per essere sicuro), quindi sembrerebbe un problema specifico per Mac.

Con "LogLevel DEBUG3" impostato sul computer remoto (server sshd) e nessuna modifica effettuata nelle connessioni client da me, /var/log/auth.log mostra una leggera modifica nei rapporti sullo stato della connessione durante la notte, che è il numero di porta utilizzato dall'unica sessione ssh di successo dalla macchina Linux (credo), connessione # 7 di seguito:

sshd [20173]: debug3: channel 7: status: Sono aperte le seguenti connessioni: \ r \ n # 0 server-session (t4 r0 i0 / 0 o0 / 0 fd 14/13 cfd -1) \ r \ n # 3 Connessione X11 dalla porta 127.0.0.1 57564 (t4 r1 i0 / 0 o0 / 0 fd 16/16 cfd -1) \ r \ n # 4 Connessione X11 dalla porta 127.0.0.1 57565 (t4 r2 i0 / 0 o0 / 0 fd 17 / 17 cfd -1) \ r \ n # 5 connessione X11 dalla porta 127.0.0.1 57566 (t4 r3 i0 / 0 o0 / 0 fd 18/18 cfd -1) \ r \ n # 6 connessione X11 dalla porta 127.0.0.1 57567 (t4 r4 i0 / 0 o0 / 0 fd 19/19 cfd -1) \ r \ n # 7 connessione X11 dalla porta 127.0.0.1 59007

In questo rapporto, tutto è uguale tra i rapporti di stato tranne il numero di porta utilizzato dalla connessione n. 7, che credo sia il client Linux, l'unico che mantiene ancora una connessione di visualizzazione. Continua ad aumentare nel tempo, a giudicare da una sequenza di questi rapporti durante la notte.

Grazie per qualsiasi aiuto,

-Mike


Sto riscontrando lo stesso problema.
sfornato il

Ho attivato -vvv sul comando ssh per ottenere informazioni di debug dalla sessione ssh lato client del Mac. Ho ottenuto questo: codeconnessione X11 rifiutata dopo la scadenza di ForwardX11Timeout ForwardX11Timeout è un'opzione nel client ssh del Mac che limita l'inoltro da una connessione non attendibile. Potenzialmente usando -Y invece di -X funzionerebbe. ForwardX11Timeout non è documentato nella pagina man ssh di Lion. L'impostazione predefinita sembra essere 20 minuti. L'impostazione più alta in ssh_config è possibile ma il server Lion X si arresta in modo anomalo se impostato su> 596 ore ... che, in millisecondi, supera i 31 bit. Arrgh. Spero che questo lo risolva.
mklein9,

Risposte:


13

Le sessioni ssh sono iniziate dopo che ho cambiato il file / etc / ssh_config del client Mac per includere la riga:

ForwardX11Timeout 596h

funzionano tutti bene e sono stati tutto il giorno. Ormai si sarebbero tutti rifiutati di iniziare nuovi xterm. Quindi credo che questa sia la risposta, e fortunatamente una soluzione semplice, ma il timeout avverrà comunque tra 3-1 / 2 settimane da adesso.


3

man ssh_config

ForwardX11Trusted

Se questa opzione è impostata su "sì", i client X11 remoti avranno pieno accesso al display X11 originale. Se questa opzione è impostata su "no", i client X11 remoti verranno considerati non attendibili e verrà impedito il furto o la manomissione dei dati appartenenti ai client X11 attendibili. Inoltre, il token xauth (1) utilizzato per la sessione scadrà dopo 20 minuti. Dopo questo periodo, ai client remoti verrà negato l'accesso. L'impostazione predefinita è "no". Vedere la specifica dell'estensione X11 SECURITY per tutti i dettagli sulle restrizioni imposte ai client non attendibili.


1
Potrebbe essere utile se ti espandessi sul perché pensi che questa opzione di configurazione risolva il problema originale.
pjmorse,

Questo spiega perché si verifica il problema, ma alcuni ragionamenti sarebbero utili.
Stefan Lasiewski,

1

Per aggiungere a "ha risposto 7 gennaio 12 alle 0:11 mklein9 28129" "Le sessioni ssh sono iniziate dopo che ho cambiato il client / etc / ssh_config del client Mac per includere la riga:

ForwardX11Timeout 596h

... ma il timeout avverrà comunque tra 3-1 / 2 settimane da adesso. "

Apparentemente puoi usare 0 e questo imposta il timeout su infinito (fintanto che la connessione è attiva).

ForwardX11Timeout 0

...

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.