X-Windows-Programme über SSH #
Hat man auf einem Rechner ein X-Windows gestartet, so kann man darin Programme von fremden Rechnern ausführen mittels ssh. Dazu muss auf dem fremden Rechner in der Datei "etc/ssh/sshd_config" der Eintrag "forwardX=yes" gesetzt sein. Dann wählt man sich in diesen fremden Rechner mit dem Befehl ssh -X [Benutzer@]Adresse von einem xterminal ein.
Mit "Adresse" ist die Adresse des fremden Rechners gemeint.
Den "Benutzer" muss man nur angeben, wenn man sich im fremden Rechner mit einem anderen Benutzernamen anmelden will als auf dem eigenen Rechner.
Das Anmelden vom normalen Terminal erlaubt nicht die Ausgabe im XServer, es sei denn - siehe weiter unten.
Ist man endlich angemeldet, kann man ein beliebiges X-Windows-Programm starten ( will man mehrere starten, muss man sie mit & in den Hintergrund schicken ) im fremden Rechner. Ich habe es ausprobiert mit dem Konqueror und mit Mozilla. Beides hat geklappt.
Es sollte möglich sein, dadurch Programme mehrerer fremder Rechner im geleichen XServer auszuführen.
Eine andere Möglichkeit ist für meinen Oberschenkelrechner (Laptop) von einem normalen Terminal aus (Darauf starte ich den XServer von Hand). Damit ssh überhaupt weiß, auf welcher Ausgabe der XServer arbeitet, muss zuerst die Variable DISPLAY gesetzt und exportiert werden. Dann wird der XServer im Hintergrund gestartet, wobei man natürlich das Display angeben muss, wie es in DISPLAY steht. Leider wechselt der XServer nun das Terminal für die Ausgabe, also zurück zum Terminal, woraus man den XServer gestartet hat. Nun mit ssh -X [Benutzer@]Adresse sich beim fremden Rechner anmelden und dort das ( oder die ) gewünschte(n) Programm(e) starten. Z.B. kann man mit "startkde" den KDE starten. Dann hat man sowas wie bei XDMCP aber geschützt!
Wer zu faul ist bei ssh den Parameter -X anzugeben, kann in der Datei /etc/ssh/ssh_config auf dem eigenen Rechner ebenfalls den Eintrag forwardX auf yes setzen. Dann wird der Inhalt der Variablen DISPLAY automatisch übergeben.
- Ob die Umleitung klappt, kann man auch mit echo $DISPLAY prüfen (da steht dann eine Adresse auf "localhost").
- Auf dem Rechner, auf dem man sich einloggt, muss das Paket xbase-clients installiert sein. Hat dieser Rechner ein eigenes X-System, ist das auf jeden Fall so, bei Servern, auf denen man nur eine einzelne X-Applikation abspielen möchte, kann das evtl. auch fehlen.
- Ggf. hilft einem ssh -v ... beim Debuggen von Problemen.