Login
Newsletter
Werbung

So, 24. August 2003, 00:00

Linux fernsteuern mit ssh, X11 und VNC

Linux spielt gerade im Netz seine Stärken aus. Hier werden verschiedene Möglichkeiten der Fernsteuerung von Rechnern aufgezeigt, die weit über 'Fernwartung' hinausgehen.

Disclaimer

Dieses Dokument wird Ihnen kostenlos zur Verfügung gestellt. Ich habe mein Wissen zum Thema so gut ich kann wiedergegeben. Trotzdem können die Informationen in diesem Dokument durch oder sonstige Ursachen fehlerhaft sein.

Sicherheit wurde nicht in Betracht gezogen! Dieses Dokument soll dem Leser eine Starthilfe geben, um Linux in einem Heimnetzwerk zu betreiben. Was mit den beschriebenen Techniken dann gemacht wird, ist jedem selbst überlassen. Falls jemand die beschriebenen Techniken ernsthaft anwendet, sind Sicherheitsaspekte zu berücksichtigen!

Komentare und Verbesserungen per E-Mail werden erbeten.

Client und Server

Bei den Begriffen Client und Server denkt man oft an große Servermaschinen und kleine sogenante Thin-Clients. Diese Sichtweise ist bei betrachtung der Hardware korrekt. Hier soll es jedoch um Konzepte und Techniken gehen. Also legen wir diese Assoziationen beiseite. Ein Computer kann sowohl Server als auch Client sein. Er kann sich selbst und anderen Computern Dienste anbieten, und gleichzeitig von sich selbst und anderen Computern Dienste in Anspruch nehmen. Wir betrachten nicht die Maschinen, sondern die Programme.

Server bieten ihre Dienste den Clients an. Ein DNS-Server zum Beispiel bietet uns (d.h. unseren Anwendungsprogrammen, den Clients) IP-Adressen für Domainnamen. Ein NFS-Server bietet Plattenplatz an. Wir bitten ihn, Dateien zu speichern und abzurufen, und er tut das für uns. Ein SMTP-Server verschickt unsere E-Mail, wärend ein POP3- oder IMAP-Server die eingehende Post sammelt, damit wir sie abholen können. Der X11-Server kümmert sich um die Grafikausgabe von Programmen. Ein Programm, das Fenster auf einem X11-System öffnet, ist also ein X-Client.

Und jetzt wird es richtig wild!

Bis jetzt war die Sache noch klar: Der Client bittet und der Server gibt. Aber ein Server kann der Client eines anderen Servers sein! Wenn ein DNS-Server die Antwort nicht selbst weiß, frägt er bei einem übergeordneten Server nach. Ein Mail-Server kann seine Dateien auf einem NFS-Server speichern und dadurch Client sein.

Mit X11 kann es richtig kompliziert werden: VNC ist ein Programm, das einen X-Server benutzt, um etwas auszugeben, also ein X-Client. Andererseits dient es anderen Programmen als X-Server. Diese Programme zeichnen ihre Fenster innerhalb des VNC-Fensters.

Ein sogenannter Applikations-Server bietet Rechenleistung an, aber benutzt den X-Desktop des Clients. Der Server ist der Client und der Client ist der Server, je nachdem welches Detail man gerade betrachtet.

Unter Linux werden grundlegende Aufgaben als Netzwerkdienste bereitgestellt. Hierzu gehören zum Beispiel das Drucken, E-Mail und die grafische Benutzeroberfläche. Dadurch wird es ein wenig kompizierter, sie einzurichten, aber wenn diese Server einmal laufen, ist es sehr einfach, sie auch von anderen Rechnern zu nutzen. Meist sind nur entsprechende Rechte zu erteilen.

Fernsteuerung per Tastatur - Remote Shell Access

Wenn zwei Rechner per Netzwerk verbunden sind, kann einer den anderen fernsteuern. Ein einfaches Login genügt: Telnet war das Programm der Wahl, ist aber inzwischen aus Sicherheitsgründen durch die Secure SHell ssh ersetzt worden.

Ein einfaches ssh username@host-ip-address bringt einen zum Login-Prompt des anderen Rechners. Nach dem Login arbeitet man an diesem anderen Rechner, als würde man davorsitzen. Nur das Umschalten der virtuellen Konsolen ist immer noch lokal.

Achtung, Verwechslungsgefahr! Wer nicht aufpasst, kann leicht Daten verlieren. Vor einem Update meines Server-Rechners habe ich die Daten auf einem Client-Rechner gesichert. Dann habe ich die Festplatte neu partitioniert und formatiert. Dann habe ich die Installations-CD eingelegt und reboot eingegeben. Erst dann habe ich realisiert, dass ich nicht den Server sondern den Client plattgemacht habe :-( Da die Daten noch auf dem Server waren, kam es nicht zu größeren Verlusten, aber ich musste den Client-Rechner wieder installieren, bevor die Frühschicht kam.

Also, bevor man irgendetwas Wichtiges tut, muss man sich vergewissern, wo man ist. Bevor man etwas Gefährliches macht, sollte man <Ctrl>-D oft drücken, um sicherzugehen, dass man auf dem Rechner eingelogt ist, vor dem man auch sitzt. (Die gleiche Gefahr besteht übrigens auch bei KVM-Umschaltern.)

Fernsteuerung per Maus - Remote X11 Access

$DISPLAY

Wenn man per ssh auf einem anderen Rechner arbeitet und eine X-Anwendung startet, erscheint meist eine Fehlermeldung, da die X-Weiterleitung nicht aktiviert ist. Hierfür ist ein -X in der ssh-Befehlszeile zuständig.

ssh -X username@host-ip-address ist alles, was notwendig ist, um die Ausgabe von grafischen Programmen auf dem lokalen X-Server (dem Bildschirm, vor dem man sitzt) darzustellen.

Spätestens jetzt wird es schwierig zu erkennen, welches Programm auf welchem Rechner läuft. Aus diesem Grund haben Programme wie emacs oder SuSEs YaST und auch die bash den Hostnamen in ihrem Fenstertitel oder im Prompt. Der menschliche Verstand braucht Orientierung, speziell in der verwirrenden Umgebung von Netzwerken :­)

Es gibt Umstände, unter denen die X-Weiterleitung nicht automatisch funktioniert. (Oder wenn man gegen besseres Wissen telnet benutzt). Dann muss man auf dem X-Server (Lokaler Rechner) einmal xhost +remoteip ausführen, um dem X-Client (dem entfernten Rechner) das Recht einzuräumen, auf den Monitor zuzugreifen.

Auf dem entfernten Rechner muss die Umgebungsvariable DISPLAY gesetzt werden: export DISPLAY=localip:0 (die ':0' ist die Bildschirm-Nummer. Wer hier eine andere Nummer einsetzen muss, der weiß, warum. Wer es nicht weiß und nicht versteht, sollte mit ':0' gut bedient sein :-) ).

Alle Programme die, aus dieser ssh nun gestartet werden, benutzen den angegebenen X-Bildschirm.

XDMCP

Mit ssh und DISPLAY könnte man nun KDE oder GNOME (oder einen Windowmanager) starten, um Programme per Maus zu starten. Es wäre jedoch unmöglich, das lokale Panel vom entfernten zu unterscheiden. Um dieses Durcheinander zu vermeiden gibt es Remote-X11-Login, welches von den Display-Managern xdm (Unix-Standard), kdm (von KDE) oder gdm (von GNOME) unterstützt wird.

Auf dem entfernten Rechner muss [xkg]dm laufen und so konfiguriert sein, dass andere Rechner eine Verbindung herstellen dürfen. Da X11 Passwörter unverschlüsselt überträgt und ein recht unsicheres Protokoll ist, ist dies meist nicht der Fall.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung