Anleitung um zwei Linux Rechner mit Hilfe von ssh miteinander zu verbinden und am Ende sich den Desktop des zweiten Rechners
auf den eigenen zu holen.
Grundlagen:
SSH dient dazu, sich sowohl lokal als auch über das Internet mit einem Rechner verschlüsselt zu verbinden.
Wir behandeln hier den lokalen Zugriff.
Da Linux ein Netzwerkbetriebssystem ist, ist der ssh-Server auf jeder Distribution bereits vorinstalliert, aber bei SUSE per default ausgeschaltet.
Bei Suse startet man den ssh-Daemon unter Yast -> System -> Systemdienste (Runlevel); hierzu sshd starten.
Den SSH-Server konfiguriert man am besten mit Yast.
Dazu installieren wir uns das Paket: yast2-sshd
Unter Yast -> Netzwerkdienste -> SSHD-Einrichtung können wir ssh einrichten.
Im Register Allgemein lassen wir die Standardeinstellungen und aktivieren den Haken bei Firewall freigeben.
Im Register Anmeldeeinstellungen entfernen wir als erstes aus Sicherheitsgründen den Root-Zugriff.
Zusätzlich aktivieren wir für einen ersten Test RSA Authentication; dies bewirkt, dass wir uns auf dem entfernten Rechner mit unseren
normalen Benutzerdaten dort einloggen können.
Später sichern wir unseren SSH-Server ab und lassen nur noch das PublikKey Authentication zu, was dann ein Hacken von ausserhalb unmöglich machen wird.
Rechner in einem Netzwerk werden mit ihrer eindeutigen IP angesprochen.
Alle Rechner im Netz sollten eine IP aus der gleichen "Range" haben.
Beispiel: 192.168.1.2
192.168.1.3 usw.
Da es auf Dauer umständlich ist jedesmal eine IP einzutippen, vergeben wir jedem Rechner im Netz einen Namen.
Dieses wird unter Yast -> Netzwerkgeräte -> Netzwerkeinstellungen -> Registerkarte Hostname/DNS vorgenommen.
Bekommt man seine IP durch dhcp von seinem Router, fügen wir auf jeden Rechner die gewünschte IP hinzu, den Rechnernamen sowie die Netzmaske 255.255.255.0
Bei mir sieht das so aus: Yast -> Netzwerkeinstellungen -> Register Adresse -> Hinzufügen
Aliasname: tanne
IP-Adresse: 192.168.1.2
Netzmaske: 255.255.255.0
Um aber in Zukunft alle so eingerichteten Rechner mit ihrem eingetragenen Namen kontaktieren zu können, muss auf jedem Rechner
als Root die Datei /etc/hosts angepasst werden, d.h in jeder /etc/hosts eines jeden Rechners sind alle sich im Netzwerk befindlichen Rechner mit IP und Rechnernamen
einzutragen.
Beispiel:
192.168.1.2 tanne
192.168.1.3 kiefer
Nach Eingabe der IP drückt man die tab-Taste um dann den Rechnernamen zu schreiben.
In den Netzwerkeinstellungen von Yast wird die Router-IP als Gateway eingetragen.
Sollte ein direktes öffnen der Datei /etc/hosts in einem Root-Dolphin nicht möglich sein, ein Terminal öffnen und folgendes eingeben:
Sind die Vorarbeiten erledigt und der sshd läuft auf jedem Rechner, geht es ans eingemachte:
Der grundlegende Aufruf zur Verbindung mit einem anderen Rechner ist bei SSH:
Das @ und <benutzer> kann man weglassen, wenn Ihr auf dem Server denselben Benutzernamen verwendet.
Als nächstes fragt der Server nach dem Akkountpasswort (Benutzerpasswort) des kontaktierten Rechners und meldet Euch
nach erfolgreicher Eingabe an dem Server an.
Wenn Ihr jetzt in diesem Terminal Anwendungen startet, laufen diese zwar auf dem Server, werden aber auf dem Client angezeigt.
Je nach SSH-Konfiguration können das auch grafische Anwendungen sein (X-Anwendungen).
Falls beim obigen Anmelden eine Fehlermeldung kommt wie:
Error: Can`t open display:
beendet man den Einlogversuch mit
<Strg><D>
und verbindet sich erneut mit eingefügtem Parameter <-X>
-X schaltet das X-Forwarding ein.
Mit der Option -X lassen sich also alle grafischen Programme auf dem entfernten Rechner starten und auf dem Clienten wiedergeben.
Eine SSH-Sitzung beenden wir stets mit der Eingabe von exit
Dateimanagement
Die meisten User möchten natürlich keine grafischen Programme auf dem entfernten Rechner ausführen, sondern oftmals Daten vom Laptop
zum Heimrechner transferieren.
Hier bedienen wir uns der kio-slaves, die KDE mitbringt.
Wir öffnen Dolphin und geben in die Adresszeile folgendes ein:
, um im Beispiel zu bleiben:
Daraufhin wird das Benutzerpasswort des Rechners abgefragt und man ist im Home-Verzeichnis des entfernten Rechners und kann nach belieben
Daten von einem Rechner zum anderen verschieben und kopieren.
Eine weitere Möglichkeit besteht darin, sich den gesamten entfernten Desktop grafisch in einem Fenster des Clienten zu holen.
Das "Zauberwort" für diese Möglichkeit heisst "Xnest"
xnest befindet sich im Paket xorg-x11-server-extra, dass es mit Yast zu installieren gilt sofern es nicht schon auf dem Rechner ist.
Für diese Vorgehensweise ist es erforderlich, dass der entfernte Rechner hochgefahren ist aber keine KDE-Anmeldung erfolgt ist.
Man sollte also auf dem Remote-Rechner den KDM-Anmeldungsmanager sehen.
Logge Dich per ssh ein:
Die hinzugefügte Option "C" dient dazu, dass die Daten komprimiert übertragen werden, weil beim Remote-Betrieb von X-Anwendungen sehr viel
mehr Daten übertragen werden müssen.
Dann gibt man ein:
um Xnest eine X-Session starten zu lassen.
Man sieht nun ein leeres Fenster auf seinem Heimrechner-
Gib dann ein:
Mit 1 legst Du eine Displaynummer fest; meist ist die 0 schon vergeben.
Der Befehl soll im Hintergrund gestartet werden (&), weil noch weitere
Eingaben folgen.
"export" legt fest, das alle folgenden grafischen Ausgaben dem Display 1
übergeben werden.
Xnest lenkt sie auf das bisher leere Fenster auf Deinem Heimrechner um.
Mit
startet man auf dem entfernten Rechner KDE sofern es dort installiert ist.
Ansonsten icewm-session & oder einen Startbefehl für einen anderen
Windowmanager der dort installiert ist.
SICHERHEIT
Wir erinnern uns, dass wir in den Yast Einstellungen für SSH den "normalen" Login mit Benutzernamen und Passwort zugelassen haben.
Da wir durch ssh einen Firewall Port offen haben, besteht die Gefahr, dass unser Rechner von ausserhalb angreifbar ist.
Dem legen wir jetzt einen Riegel vor und lassen nur noch "Schlüsseldateien" zu die wir auf unsere
Rechner kopieren.
Ein Schlüssel ist privat, bleibt auf dem eigenen Rechner und darf nicht in fremde Hände gelangen.
Der/Die anderen Schlüssel sind öffentlich und werden auf die Rechner kopiert auf die man per ssh zugreifen will.
Ein Angreifer muss also im Besitz des privaten Schlüssels sein um sich per ssh auf die Rechner im Netzwerk einloggen zu können.
Erzeugen der Schlüssel:
Tippe:
in ein Terminal.
Nun rechnet der Schlüsselgenerator ein wenig und schlägt dann als Dateinamen ~/.ssh/id_dsa vor, was wir bestätigen.
Danach fragt er nach einer Passphrase- es geht dabei nicht um das Passwort, das wir verwenden um uns per einfachem Login auf dem entfernten Rechner
anzumelden, sondern das die private Schlüsseldatei vor jeder Verwendung freischaltet.
Wenn man garantieren kann, dass keine unbefugte Person an unseren Rechner kommen kann, können wir den Schritt auch überspringen (enter).
Ist das Schlüsselpaar erstellt, kopieren wir den öffentlichen Schlüssel mit
auf den entfernten Rechner.
Erst jetzt entfernen wir das gesetzte Häkchen in den SSH-Einstellungen von Yast (RSA-Authentication).
Nun öffnen wir als Root die datei /etc/ssh/sshd_config, scrollen ganz nach unten und überzeugen uns, dass bei PubkeyAuthentication yes steht.
Darüber hinaus schreiben wir da drunter noch folgendes, so das der Abschnitt so aussieht:
AllowTcpForwarding yes
Compression yes
MaxAuthTries 6
PermitRootLogin no
PrintMotd yes
PubkeyAuthentication yes
RSAAuthentication no
KerberosAuthentication no
PasswordAuthentication no
ChallengeResponseAuthentication no
Abschließend speichern wir die Datei und starten den SSH-Server mit:
neu.
Es gibt noch zahlreiche Funktionen wie beispielsweise den Standardport zu ändern wenn man meint der Rechner wird auf Port 22 zu viel angegriffen
oder man kann sich das eintippern der Passphrase erleichtern, in dem sie nur einmal in einem Agenten eingetippt wird solange man eingeloggt ist usw.
Bei Interesse ergänze ich dieses kleine HowTo und wünsche nun viel Spaß beim ausprobieren.