Öffnen Sie eine X-Anwendung, die viele Reifen durchläuft (SSH, vpn usw.).

2086
tzot

Die Spieler:

  • Mein Heimcomputer, auf dem Linux mit einem X-Server ausgeführt wird. (Nennen Sie es HOME.)
  • eine entfernte Site, zu der ich mich über ein VPN mit dem Internet verbinden kann. (SEITE? ˅)
  • ein Linux-Computer am Remote-Standort, zu dem ich eine Verbindung herstellen kann ssh -Xund X-Clients auf meinem lokalen Server anzeigen kann. (MITTE)
  • ein sehr alter Irix-Rechner (ein Onyx) am Remote-Standort, der keinen SSH-Server hat (daher kann ich das nicht ssh -X), nur einen ssh Client . (ONYX)

Zweck

Ich muss eine X11-Anwendung auf dem ONYX-Computer ausführen und die GUI unter HOME sehen. Ich glaube, ich stolpere über xauthProbleme. Beachten Sie, dass ich das Offensichtliche ausprobiert habe: Ich setze DISPLAY auf $ip_address_of_HOME_in_the_SITE_VPN:0, aber der VPN-Server leitet Verbindungsversuche nicht an seine Clients weiter, wahrscheinlich aus Sicherheitsgründen.

Bisher

Die aktuelle Situation ist:

  • ☑ HOME verbindet sich mit SITE
  • V Ein vncserver startet auf MIDDLE: 7
  • ☑ vncviewer unter HOME verbindet sich mit vncserver unter MIDDLE
  • ☑ ONYX startet eine SSH-Weiterleitungssitzung zu MIDDLE:
    ssh -TfN -L 6007:127.0.0.1:6007 MIDDLE
  • DISPLAY=localhost:7 xclientauf ONYX schlägt mit Xlib fehl
    : Verbindung zu "127.0.0.1:7.0" vom Server abgelehnt

Ich weiß, dass die Weiterleitung (6007: 127.0.0.1: 6007) erfolgreich ist.

Ein früherer Versuch war:

  • ☑ HOME verbindet sich mit SITE
  • ☑ HOME verbindet sich mit MIDDLE:
    ssh -X MIDDLE(xclock wird auf HOME angezeigt, DISPLAY ist 127.0.0.1:10)
  • ☑ ONYX startet einen SSH-Tunnel nach MIDDLE: ssh -TfN -L 6010:127.0.0.1:6010 MIDDLE
  • DISPLAY=127.0.0.1:10 xclientschlägt fehl, wenn
    X-Verbindung zu 127.0.0.1:10.0 unterbrochen ist (explizites Abbrechen oder Herunterfahren des Servers).
    Während in der MIDDLE-Sitzung ein Fehler auftritt:
    X11-Verbindung wurde wegen falscher Authentifizierung abgelehnt.

Verzweiflung

Wie kann ich meinen Zweck erreichen?

0
Ich habe versucht, `xauth` auf ONYX auszuführen, dann` 127.0.0.1:10 zu generieren. vertraut` (im zweiten Fall oben), aber ich habe den gleichen Doppelfehler (einer bei ONYX, einer bei MIDDLE). tzot vor 13 Jahren 0

3 Antworten auf die Frage

0
Ignacio Vazquez-Abrams

XDMCP . Konfigurieren Sie ONYX so, dass es XDMCP-Verbindungen akzeptiert, und rufen Sie dann einen SSH-Tunnel von HOME nach MIDDLE auf. Eine Verbindung Xnestoder Xephyran das lokale Ende des SSH Tunnel, und melden sich ONYX.

Ich werde versuchen, mehr über Xnest und Xephyr zu lesen, da ich keine Erfahrung damit habe. Ich bin mir jedoch nicht sicher, wie der Tunnel von HOME nach MIDDLE eingerichtet werden soll. Wenn ich ONYX so konfiguriere, dass es XDMCP-Verbindungen akzeptiert, bedeutet das nicht, dass ich mich an der grafischen ONYX-Konsole an anderen Systemen anmelden kann (dh das Gegenteil von dem, was ich möchte)? tzot vor 13 Jahren 0
Ehrlich gesagt erinnere ich mich nicht an alle Details. Es ist schon so lange her, dass ich mich eigentlich mit XDMCP befassen musste. Ignacio Vazquez-Abrams vor 13 Jahren 0
0
tzot

Es gelang mir, eine Lösung mit geraden SSH-Tunneln (keine -X-Option) und ein paar xauthSpielereien zu finden:

  • HOME verbindet sich mit SITE, Telnet mit ONYX
  • HOME ssh tunnel zu MIDDLE:
    ssh -TfN -R 6010:127.0.0.1:6000 MIDDLE
  • ONYX-SSH-Tunnel zu MITTEL:
    ssh -TfN -L 6010:127.0.0.1:6010 MIDDLE
  • HOME xauth nextract - $DISPLAYund kopieren Sie die Ausgabe
  • ONYX xauth nmerge -und fügen Sie die vorherige Ausgabe ein
  • ONYX DISPLAY=127.0.0.1:10 xclienterfolgreich :)
-1
mpez0

Sie können den localhost (127.0.0.1) DISPLAY nicht für einen X-Client verwenden, der auf der ONYX-Box ausgeführt wird, um auf der HOME-Box anzuzeigen. Sie benötigen die HOME-IP-Adresse oder den Hostnamen.

-1: Sie haben die SSH-Tunnel nicht bemerkt, fürchte ich. Ich habe auch schon versucht, DISPLAY auf IP_OF_HOME_THRU_VPN_ON_REMOTE_SITE zu setzen: 0, aber der VPN-Server leitet Verbindungen * nicht * an * die VPN-Clients weiter, sondern nur * von *. tzot vor 13 Jahren 0
Eigentlich habe ich die Tunnel bemerkt. Ich sah keinen Grund für ihre Notwendigkeit. Unabhängig davon ist localhost als DISPLAY-Variable für einen Host ohne laufenden X-Server falsch. mpez0 vor 13 Jahren 0
"localhost" in der Umgebungsvariable DISPLAY impliziert eine TCP / IP-Verbindung. Kein Hostname impliziert einen lokalen UNIX-Socket. Angenommen, es gibt viele Möglichkeiten, TCP / IP-Sockets an entfernte Maschinen weiterzuleiten (z. B. mit SSH-Tunneln, die hier funktionierten; siehe meine Antwort). Was meinen Sie mit Ihrem letzten Teil Ihres Kommentars: "localhost als DISPLAY-Variable für a Host ohne X-Server ist fehlerhaft. “? Weil die Realität das, was Sie sagen, widerlegt, so ist es selbst falsch. tzot vor 13 Jahren 0