2012-04-12 15 views
7

Sto usando Git Bash su Windows. Ho usato Git Bash su SSH in una macchina UNIX e ho provato a eseguire un programma con una GUI. Ho ricevuto il messaggio: Rilevato sistema LINUX/UNIX, ma impossibile accedere al display X11.X sessione in Git Bash su Windows?

Ho X-Win 32 (commerciale). Ho anche usato Xming che è come una versione gratuita di X-Win 32 ma ha problemi con alcuni elementi grafici.

C'è un modo per far sì che questo sistema remoto possa accedere al mio display X11 tramite X-Win 32 o Xming o in qualche modo?

Mi piacerebbe solo eseguire programmi come MATLAB, con una GUI che si apre, dai computer UNIX, quando SSH'ed in quella macchina tramite Git Bash su Windows.

Ho anche installato PuTTY e Secure Shell Client, ma preferisco lavorare esclusivamente con Git Bash perché richiede meno pulsanti da premere per ssh ad altre macchine.

Se è impossibile farlo funzionare su Git Bash mi piacerebbe farlo funzionare con PuTTY (Secure Shell Client è buono ma ha interrotto gli aggiornamenti in modo permanente).

+0

Due cose: 1. È necessario dissociare il controllo di accesso in Xming (quindi '-ac') [non consigliato] e 2. È necessario configurare DISPLAY per puntare all'IP dove Xming è in esecuzione quando si tenta di connettersi. – Stanislav

risposta

0

Si può provare ad aggiungere l'opzione -X al comando ssh in git bash. Non sono sicuro che funzionerà. Tuttavia, non è il metodo che suggerirei. Invece, suggerirei di esaminare X forwarding usando lo stucco. Dovresti essere in grado di trovare una varietà di guide su come impostarlo con una ricerca rapida.

+0

Grazie mille per la tua risposta. Ho provato: ssh -X [email protected] e poi xclock, e ha detto "errore: Impossibile aprire display". Sono riuscito a far funzionare xclock sullo stesso server di PuTTY andando su Connection-> SSH-> X11 e selezionando "enable X11 tunelling" e impostando il percorso di visualizzazione su 127.0.0.1:0 (cioè, la mia macchina, su cui è in esecuzione PuTTY). Grazie per il tuo consiglio. Sarebbe comunque l'ideale per poter fare questo da Git Bash - perché non lo consigli? – user1271772

+0

Non lo consiglierei perché da quello che ho capito git bash esiste solo per darti una comoda riga di comando per git su windows. Anche se riuscissi a farlo funzionare, dubito che l'inoltro X sia sul radar degli sviluppatori. –

1

È necessario avviare il server X prima di connettersi tramite SSH. E quando ti colleghi all'altra casella dovrai includere lo switch -X con SSH. Ciò dirà a SSH di inoltrare l'output delle app X11 alla tua casella di Windows.

+0

Grazie mille per la tua risposta. Ho provato: ssh -X [email protected] e poi xclock, e ha detto "errore: Impossibile aprire il display" – user1271772

0

Il problema è che in qualche modo è necessario trasferire i dati di XAuthority all'host remoto. Normalmente SSH fa questo per te, ma solo se è avviato con le giuste variabili di ambiente. Fondamentalmente è necessario capire la posizione dei dati xauth e inserire quel percorso nella variabile di ambiente XAUTHORITY. Molto probabilmente il DISPLAY ": 0.0".

Penso che la soluzione più semplice sia stata l'utilizzo di Cygwin e del server X11 che viene fornito, poiché lo script di avvio X di esso aprirà un xterm da cui è possibile eseguire SSH sul computer remoto.

3

sono stato in grado di raggiungere questo obiettivo con stucco e Xming http://sourceforge.net/projects/xming/

semplicemente avviare Xming e consentire l'inoltro della sessione x nelle opzioni di stucco.

+0

funziona anche con git-bash e xming, almeno per 'xclock'. basta impostare il display a 'localhost ...' prima di 'ssh'ing. – mulllhausen

11

Questo Q è piuttosto vecchio, ma comunque ... ero (finalmente ...) in grado di ottenere questo lavoro utilizzando il comando ssh da Git for Windows e XMing. Tutto quello che dovevo fare era impostare la variabile di ambiente DISPLAY su localhost:0.0 (era impostata solo su :0.0).

+0

Come si modificano le variabili d'ambiente in Git Bash? O lo hai fatto in ssh? Grazie – Anon343224user

+2

Metti 'export DISPLAY = localhost: 0.0' nel tuo' $ HOME/.bashrc'. –

+1

Ho aggiunto questo tramite le variabili di ambiente di sistema per Windows e funziona bene per me. –

6

Un'alternativa a Xming è VcXsrv creata utilizzando Visual Studio C++. L'ultima versione di Xming ora richiede una donazione.

Punta il mouse sull'icona X nella barra di stato e scopri su quale porta viene eseguita. Se è :0.0 (o :25.0), quindi in Git Bash: export DISPLAY=localhost:0.0 (o export DISPLAY=localhost:25.0). Potrebbe inoltre essere necessario utilizzare -Y anziché -X per il comando ssh.

+0

Questo post funziona per me. – jdhao