Otwórz aplikację X przechodzącą przez wiele obręczy (SSH, VPN itp.)


0

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 -Xi ł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 -Xzrobić), tylko ssh klient . (ONYKS)

Cel, powód

Muszę uruchomić aplikację X11 na maszynie ONYX i zobaczyć GUI w HOME. Myślę, że natrafiam na xauthproblemy. 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 xclientONYX 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 xclientkoń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?


Próbowałem wtedy uruchomić xauthna ONYX generate 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).
tzot

Odpowiedzi:


0

XDMCP . Skonfiguruj ONYX, aby akceptował połączenia XDMCP, a następnie przenieś tunel SSH z HOME do MIDDLE. Podłącz Xnestlub Xephyrdo lokalnego końca tunelu SSH i zaloguj się do ONYX.


Spróbuję przeczytać więcej na temat Xnest i Xephyr, ponieważ nie mam z nimi doświadczenia. Nie jestem jednak pewien, jak należy skonfigurować tunel od HOME do MIDDLE. Ponadto, jeśli skonfiguruję ONYX do akceptowania połączeń XDMCP, czy nie oznacza to, że na konsoli graficznej ONYX mogę zalogować się do innych systemów (tj. Odwrotnie niż to, czego chcę)?
tzot

Szczerze mówiąc, nie pamiętam wszystkich szczegółów. Minęło tak dużo czasu, odkąd faktycznie miałem do czynienia z XDMCP.
Ignacio Vazquez-Abrams,

0

Udało mi się dojść do rozwiązania przy użyciu prostych tuneli SSH (bez opcji -X), a także trochę xauthbłahostek:

  • HOME łączy się z SITE, telnet z ONYX
  • HOME ssh tunel do MIDDLE:
    ssh -TfN -R 6010:127.0.0.1:6000 MIDDLE
  • Tunel ssh ONYX do MIDDLE:
    ssh -TfN -L 6010:127.0.0.1:6010 MIDDLE
  • HOME xauth nextract - $DISPLAYi skopiuj dane wyjściowe
  • ONYX xauth nmerge -i wklej poprzednie wyjście
  • ONYX DISPLAY=127.0.0.1:10 xclientudany :)

-1

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.


-1: Obawiam się, że nie zauważyłeś tuneli SSH. Ponadto próbowałem już ustawić DISPLAY na IP_OF_HOME_THRU_VPN_ON_REMOTE_SITE: 0, ale serwer VPN nie przekierowuje połączeń do klientów VPN, tylko z .
tzot

Właściwie zauważyłem tunele. Nie widziałem powodu ich konieczności. Niezależnie od tego, localhost jako zmienna DISPLAY dla hosta bez działającego serwera X jest niepoprawny.
mpez0

localhostw 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.
tzot
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.