Wie kann ich per ssh X-Window Programme auf dem Rechner, in dem ich mich einlogge, auf dessen X Ser.zur Anzeige bringen?
-
Auf Rechner A läuft ein X Server und Nutzer Hans ist dort eingeloggt, nun möchte ich mich von Rechner B per SSH in Rechner A einloggen und auf das Display von Hans ein X Window Programm zur Anzeige bringen.
Erwähnen möchte ich hierbei noch, dass ich das PW von Hans kenne und zur Nutzung von Hans Account auch berechtigt bin.
-
Was spricht gegen rdesktop?
-
Das ist, soweit ich weiß, nicht möglich. Es ist aber möglich, auf dem Hostrechner Software zu installieren, die diese Funktionalität oder ähnliche Möglichkeiten bietet. Beispielsweise sollte das (ungetestet) mit x11vnc oder x0vncserver gehen, worauf man sich dann mittels eines VNC-Clients damit verbinden - auch mit einer bereits laufenden Session. Oder auch mit jeder Menge anderer Remote Desktop Software. Ich mag beispielsweise nx, mit dem das theoretisch wohl auch möglich ist (aber ein Feature, das ich bisher nie benötigt habe). Hier gibt es eine Liste:
http://en.wikipedia.org/wiki/Comparison_of_remote_desktop_software
Du suchst nach Software in der untersten Tabelle, die "Remote Assistance" erlaubt (wobei das erst einmal nur bedeutet, dass man eine fremde Session angucken kann, ob man sie auch anfassen darf ist in der Tabelle leider nicht aufgeführt).
-
Jodocus schrieb:
Was spricht gegen rdesktop?
Du benutzt beim Kuchen backen sicher auch Salz anstatt Zucker.
-
Was ne Torte schrieb:
Jodocus schrieb:
Was spricht gegen rdesktop?
Du benutzt beim Kuchen backen sicher auch Salz anstatt Zucker.
Es gibt keinen Grund pampig zu werden, weil dir Antworten nicht gefallen. Sinnvoller wäre es, auf Gegenfragen einzugehen. Und zwar vorzugsweise auf eine konstruktive Art und Weise und nicht mit "Weil's von Microsoft ist" oder was auch immer der Grund sein mag, wieso du hier so reagierst.
-
Wenn es ein X Window Programm sein soll und auf dem externen Rechner ein X Server ist, wie aus der Frage im Titel zu entnehmen ist, dann ist es sicherlich auch kein Windowsrechner und somit ist der Tipp mit rdesktop einfach blöd.
Kann man da nicht irgendetwas mit der $DISPLAY Variable und export drehen?
Ich könnte mich z.b. mit ssh auf den Rechner in eine Konsole einloggen.
Dann wäre ich virtuell auf dem anderen Rechner und jetzt müsste ich mich nur dort in eine laufende X Session einklinken und dort ein Programm einblenden.Das Programm möchte ich weder selbst nutzen noch irgendwie damit interagieren, es soll auf dem andern Rechner in der laufenden Sitzung nur aufpoppen und angezeigt werden.
-
Nutzer Bert schrieb:
Wenn es ein X Window Programm sein soll und auf dem externen Rechner ein X Server ist, wie aus der Frage im Titel zu entnehmen ist, dann ist es sicherlich auch kein Windowsrechner und somit ist der Tipp mit rdesktop einfach blöd.
Blöderweise gibt es RDP-Server auch für Linux und viele andere Systeme...
Kann man da nicht irgendetwas mit der $DISPLAY Variable und export drehen?
Ich muss meine vorherige teilweise Antwort zurück nehmen, anscheinend geht es doch ganz nativ mit ssh und passenden Shellkommandos. Zumindest habe ich mich gerade von einer der virtuellen Terminals erfolgreich mit dem in einem anderen Terminal laufenden Xserver verbunden und dort ein Programm gestartet (das ich dann aber entsprechend vom Ausgangsterminal aus nicht steuern konnte, sondern nur vom Desktop aus).
1. Schritt: Herausfinden, was die passende DISPLAY-Variable ist. Wenn das Fenster auf dem Hauptdesktop des Rechners erscheinen soll, ist dies wahrscheinlich so etwas wie ":0.0" (ohne Anführungsstriche). Diesen Wert setzt man in der ssh-Session (also bei sh-Shells so etwas wie
export DISPLAY=":0.0"
).
2. Schritt: Man braucht die entsprechende XAuthority-Datei. Wenn man sowieso schon als ein Nutzer, der etwas auf dem Desktop anzeigen darf, mit dem Host verbunden ist, dann hat man sie wahrscheinlich schon im Home-Verzeichnis liegen, wo sie dann auch standardmäßig gesucht wird. Ansonsten muss man sie sich von Hans besorgen. Es wird standardmäßig $HOME/.Xauthority verwendet oder, wenn gesetzt, die Datei, die durch die Variable XAUTHORITY angegeben wird.
3. Schritt: Starten der X-Anwendung.
4. Schritt: ???
5. Schritt: ProfitAlles in allem eigentlich erstaunlich einfach, komisch dass ich nicht gleich darauf gekommen bin
Es sollte mit dieser Technik sogar möglich sein, dass du sogar bei dir lokal ein Programm starten kannst, das dann auf dem entfernten Rechner angezeigt wird, d.h. du könntest für Hans ein Programm starten, das dieser gar nicht installiert hat. Dafür muss der Xserver dort aber auf dem Netzwerk lauschen, was normalerweise nicht die Standardeinstellung ist. Das mag ich bei mir nicht ausprobieren, aber ich habe dies dazu gefunden:
http://askubuntu.com/questions/203173/run-application-on-local-machine-and-show-gui-on-remote-display
-
SeppJ schrieb:
(das ich dann aber entsprechend vom Ausgangsterminal aus nicht steuern konnte, sondern nur vom Desktop aus).
[...]
Es sollte mit dieser Technik sogar möglich sein, dass du sogar bei dir lokal ein Programm starten kannst, das dann auf dem entfernten Rechner angezeigt wird, d.h. du könntest für Hans ein Programm starten, das dieser gar nicht installiert hat. Dafür muss der Xserver dort aber auf dem Netzwerk lauschen, was normalerweise nicht die Standardeinstellung ist. Das mag ich bei mir nicht ausprobieren, aber ich habe dies dazu gefunden:
http://askubuntu.com/questions/203173/run-application-on-local-machine-and-show-gui-on-remote-display1. Dafür gibt es auch Tools, z.B. x2x
2. ssh -X Remoterechner -> lokaler Rechner scheint eine einfache Möglichkeit zu sein, ohne X explizit dem Netzwerk auszusetzen. Die Schwierigkeiten mit $DISPLAY und xauth bleiben
-
Nutzer Bert schrieb:
Kann man da nicht irgendetwas mit der $DISPLAY Variable und export drehen?
Ich könnte mich z.b. mit ssh auf den Rechner in eine Konsole einloggen.
Dann wäre ich virtuell auf dem anderen Rechner und jetzt müsste ich mich nur dort in eine laufende X Session einklinken und dort ein Programm einblenden.Das Programm möchte ich weder selbst nutzen noch irgendwie damit interagieren, es soll auf dem andern Rechner in der laufenden Sitzung nur aufpoppen und angezeigt werden.
Dann sollte das relativ leicht sein. Einfach zum passenden User wechseln,
DISPLAY
setzen,xhost +
oä. aufrufen und das Programm pernohup
oä. starten.