Mountain Lion ssh -X problemy

8

Jak uruchomić przekazywanie Mountain Lion X11 przez SSH?

Przykład:

ssh -X [email protected] xterm

mój / etc / sshd_config ma

X11Forwarding yes
#X11DisplayOffset 10
X11UseLocalhost yes

# XAuthLocation added by XQuartz (http://xquartz.macosforge.org)
XAuthLocation /opt/X11/bin/xauth

Zrestartowałem sshd z

launchctl stop com.openssh.sshd
launchctl start com.openssh.sshd

(i w Preferencjach -> Także udostępnianie)

Zacząłem XQuatrz, a z Xtermu biegam

ssh -v -X [email protected] xterm        #this part not works :)

dostał następny:

debug1: Authentication succeeded (keyboard-interactive).
Authenticated to 192.168.1.17 ([192.168.1.17]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Sending command: xterm
debug1: Remote: No xauth program; cannot forward with spoofing.
X11 forwarding request failed on channel 0
xterm: Xt error: Can't open display: 
xterm: DISPLAY is not set
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 2656, received 2480 bytes, in 0.1 seconds
Bytes per second: sent 29582.4, received 27622.1
debug1: Exit status 1

z Xtermu

$ echo $DISPLAY
/tmp/launch-BHtJfJ/org.macosforge.xquartz:0

zmiana na :0nie pomaga

uciekając z Xtermu

$ xauth list
jonatan.local/unix:0  MIT-MAGIC-COOKIE-1  f4f85682af36ae7d95cd3d244cb6beb2
192.168.1.9:0  MIT-MAGIC-COOKIE-1  f4f85682af36ae7d95cd3d244cb6beb2
jonatan.local:0  MIT-MAGIC-COOKIE-1  f4f85682af36ae7d95cd3d244cb6beb2

Dowolny pomysł?

jm666
źródło
Czy możesz wyjaśnić, która część nie działa dla Ciebie?
skromny
@demure Mój angielski nie jest wystarczająco dobry, miałem nadzieję, że błąd błędu jest wystarczająco jasny. Ale ok, dodałem komentarz do pytania, aby pokazać dokładnie, co nie działa. Lub bardziej precyzyjnie, nie działa tunelowanie protokołu X przez ssh z jakiegoś dziwnego powodu. Może xauth. Dziękuję za zainteresowanie. :)
jm666

Odpowiedzi:

8

Musisz otworzyć XQuartz, przejść do X11PreferencjeBezpieczeństwo , są dwa pola wyboru: wyłącz pierwsze, włącz drugie. Uruchom ponownie XQuartz i spróbuj ponownie. Musisz także zdefiniować $DISPLAYzmienną w następujący sposób:

export DISPLAY=clienthost:0.0
Andreu
źródło
Tymczasem odkryłem, że problem był z innej strony - nie w moim OS X.; W każdym razie dziękuję +1.
jm666
@ jm666, Andreu Mam ten sam problem i to rozwiązanie nie działa dla mnie, # jm66 mógłbyś podzielić się swoim doświadczeniem w rozwiązaniu tego problemu.
math137,
Co to jest clienthost?
Jonathan
1

Nie jestem pewien, jak to się może stać, ale ze źródła SSH, z którego pochodzi komunikat o błędzie:

/* Try to open a socket for the local X server. */
display = getenv("DISPLAY");
if (!display) {
    error("DISPLAY not set.");
    return -1;
}

Wskazuje, że rzeczywiście ssh uważa, że ​​zmienna wcale nie jest ustawiona (tj. Nie jest zniekształcona lub coś, ale brakuje).

Nie jestem pewien, czy SSH zmieni kontekst użytkownika, aby uzyskać inne środowisko. Możesz spróbować

ssh -vvv ....

(wielokrotne „v”), aby uzyskać więcej wyników debugowania, być może daje to podpowiedź gdzieś podczas uruchamiania.

Terminality
źródło
wow - dobry pomysł na wiele vvv - zamierzam sprawdzić. Dzięki :)
jm666
ok, mam nadzieję, że to pomoże
Terminala