Gracze:
- mój komputer domowy z systemem Linux z uruchomionym serwerem X. (Nazwij to HOME.)
- zdalna strona, z którą mogę połączyć się przez Internet za pomocą VPN. (TEREN)
- komputer z systemem Linux na zdalnej stronie, z którym mogę się połączyć
ssh -X
i ładnie wyświetlać X klientów na moim lokalnym serwerze. (ŚRODKOWY) - bardzo stara maszyna Irix (Onyx) na zdalnej stronie, która nie ma serwera SSH (dlatego nie mogę tego
ssh -X
zrobić), tylkossh
klient . (ONYKS)
Cel, powód
Muszę uruchomić aplikację X11 na maszynie ONYX i zobaczyć GUI w HOME. Myślę, że natrafiam na xauth
problemy. Zauważ, że próbowałem oczywistego: ustawiłem DISPLAY na $ip_address_of_HOME_in_the_SITE_VPN:0
, ale serwer VPN nie przekazuje prób połączenia swoim klientom, prawdopodobnie ze względów bezpieczeństwa.
Jak dotąd
Obecna sytuacja to:
- ☑ HOME łączy się z SITE
- V Serwer vncserver uruchamia się na MIDDLE: 7
- ☑ vncviewer w HOME łączy się z vncserver na MIDDLE
- ☑ ONYX rozpoczyna przekazywanie sesji ssh do MIDDLE:
ssh -TfN -L 6007:127.0.0.1:6007 MIDDLE
- ☒
DISPLAY=localhost:7 xclient
ONYX nie działa z
Xlib: połączenie z „127.0.0.1:7.0” odrzucone przez serwer
Wiem, że przekazywanie (6007: 127.0.0.1: 6007) się powiedzie.
Poprzednia próba była:
- ☑ HOME łączy się z SITE
- ☑ HOME łączy się z MIDDLE:
ssh -X MIDDLE
(xclock wyświetla się w HOME, DISPLAY to 127.0.0.1:10) - ☑ ONYX uruchamia tunel SSH do ŚRODKA:
ssh -TfN -L 6010:127.0.0.1:6010 MIDDLE
- ☒
DISPLAY=127.0.0.1:10 xclient
kończy się niepowodzeniem z
powodu przerwania połączenia X z 127.0.0.1:10.0 (jawne zabicie lub zamknięcie serwera).
podczas gdy pojawia się błąd w sesji MIDDLE:
połączenie X11 zostało odrzucone z powodu niewłaściwego uwierzytelnienia.
Rozpacz
Jak mogę osiągnąć swój cel?
vpn
xorg
tunnel
x11-forwarding
tzot
źródło
źródło
xauth
na ONYXgenerate 127.0.0.1:10 . trusted
(w drugim przypadku powyżej), ale mam ten sam podwójny błąd (jeden w ONYX, jeden w MIDDLE).Odpowiedzi:
XDMCP . Skonfiguruj ONYX, aby akceptował połączenia XDMCP, a następnie przenieś tunel SSH z HOME do MIDDLE. Podłącz
Xnest
lubXephyr
do lokalnego końca tunelu SSH i zaloguj się do ONYX.źródło
Udało mi się dojść do rozwiązania przy użyciu prostych tuneli SSH (bez opcji -X), a także trochę
xauth
błahostek:ssh -TfN -R 6010:127.0.0.1:6000 MIDDLE
ssh -TfN -L 6010:127.0.0.1:6010 MIDDLE
xauth nextract - $DISPLAY
i skopiuj dane wyjściowexauth nmerge -
i wklej poprzednie wyjścieDISPLAY=127.0.0.1:10 xclient
udany :)źródło
Nie można użyć WYŚWIETLACZA localhost (127.0.0.1) dla klienta X działającego na polu ONYX do wyświetlania na polu HOME. Potrzebujesz adresu IP HOME lub nazwy hosta.
źródło
localhost
w zmiennej środowiskowej DISPLAY implikuje połączenie TCP / IP; brak nazwy hosta w ogóle oznacza lokalne gniazdo UNIX. Biorąc pod uwagę, że istnieje wiele sposobów przekazywania gniazd TCP / IP do zdalnych maszyn (np. Z tunelami ssh, które tu działały; zobacz moją odpowiedź), co masz na myśli mówiąc o ostatniej części komentarza: „localhost jako zmienna DISPLAY dla host bez uruchomionego serwera X jest niepoprawny. ”? Ponieważ rzeczywistość obala to, co mówisz, więc sama w sobie jest niepoprawna.