Via Secure Shell auf entfernten Rechnern arbeiten

Aus LinuxUser 07/2019

Via Secure Shell auf entfernten Rechnern arbeiten

© Sripfoto, 123RF

Voller Zugang

Das Login per SSH auf einen OpenSuse-Rechner per SSH eröffnet viele Möglichkeiten – unter anderem, per VNC auf dem KDE-Desktop zu arbeiten.

Einen Linux-PC von einem anderen Rechner im Netz aus zu bedienen, ist ein alter Hut: In der Unix-Tradition, auf die Linux aufbaut, war sie schon in den 70er-Jahren des letzten Jahrhunderts verbreitet. Die Secure Shell [1] aus dem Jahre 1995 bleibt bis heute die am meisten verbreitete Methode, um sich via Netzwerk auf einem Rechner anzumelden.

Shell steht dabei für die Textkonsole. Loggen Sie sich per SSH ein, steht Ihnen also zunächst bloß ein nüchterner Prompt bereit, ein Startmenü wie auf dem lokalen Desktop gibt es nicht. Im Prinzip arbeiten Sie jedoch an diesem Prompt genauso wie in einer lokalen Shell. Selbst die Fenster grafischer Programme, die Sie entfernt starten, erscheinen auf dem lokalen Bildschirm, sofern Sie den passenden Parameter verwendet haben.

Auf dem entfernten Rechner muss der SSH-Dienst laufen. Sowohl auf dem lokalen als auch dem entfernten Rechner müssen Sie außerdem die Firewall so konfigurieren, dass sie die SSH-Verbindung nicht blockiert.

Haustür öffnen

Der OpenSuse-Installer nimmt Ihnen auf Wunsch die Arbeit ab: In der Übersicht vor der eigentlichen Installation bietet er die Möglichkeit, sowohl den SSH-Dienst beim Booten zu starten als auch den zugehörigen Firewall-Port zu öffnen (Abbildung 1). Allerdings müssen Sie beide Optionen explizit anwählen: Standardmäßig ist sowohl der Dienst inaktiv als auch der Firewall-Port geschlossen, damit Anwender, die von SSH gar nichts wissen, ein möglichst sicheres System erhalten.

Abbildung 1: Der OpenSuse-Installer deaktiviert in der Voreinstellung SSH und schlie&szlig;t den zugeh&ouml;rigen Firewall-Port. Ein Klick auf die entsprechenden Optionen unter <span class="ui-element">Firewall und SSH</span> &auml;ndert das.

Abbildung 1: Der OpenSuse-Installer deaktiviert in der Voreinstellung SSH und schließt den zugehörigen Firewall-Port. Ein Klick auf die entsprechenden Optionen unter Firewall und SSH ändert das.

Das Aktivieren von SSH und die Konfiguration der Firewall lassen sich auch nach der Installation noch erledigen. Den Dienst aktivieren Sie unter OpenSuse im YaST-Modul Dienste-Verwaltung in der Rubrik System (Abbildung 2). Dort wählen Sie in der langen Liste der verfügbaren Dienste den Eintrag sshd (SSH-Daemon) aus. Hat die Installation ihn nicht aktiviert, steht in der Spalte Start der Eintrag Manually, in der Spalte State die Bemerkung Inaktiv (Dead).

Abbildung 2: Mit <span class="ui-element">Start</span>/<span class="ui-element">Stopp</span> und <span class="ui-element">Aktivieren</span>/<span class="ui-element">Deaktivieren</span> starten Sie im YaST-Modul <span class="ui-element">Dienste</span> den SSH-Dienst und aktivieren ihn beim Systemstart.

Abbildung 2: Mit Start/Stopp und Aktivieren/Deaktivieren starten Sie im YaST-Modul Dienste den SSH-Dienst und aktivieren ihn beim Systemstart.

Klicken Sie dann auf die Schaltfläche Start links unten, um den Dienst zu aktivieren. Im Ausklappmenü Start Mode wählen Sie On Boot, damit der Dienst nach dem Reboot des Rechners wieder startet. Anschließend klicken Sie auf OK.

Wer sich auf die Konsole wagt, kommt schneller zum Ziel: Geben Sie dort als Root die Befehle systemctl start sshd und systemctl enable sshd ein, um den SSH-Dienst zu starten und ihn für einen automatischen Start beim Booten zu konfigurieren. Diese Vorgehensweise funktioniert bei Rechnern mit anderen Distributionen, wenn Sie das Paket openssh, openssh-server oder ähnlich installieren. Unter Ubuntu startet der Dienst sogar gleich nach der Installation.

Lokal steht SSH nun bereit, doch Sie wollen ja über das Netz darauf zugreifen. Starten Sie daher das YaST-Modul Firewall. OpenSuse Leap 15.0 hat von der über Jahre bewährten Applikation SuSEfirewall2 zur Software Firewalld [3] gewechselt, auf die mehrere Distributionen setzen. Das neue YaST-Frontend wirkt jedoch etwas überladen (Abbildung 3).

Abbildung 3: Das YaST-Modul <span class="ui-element">Firewall-Konfiguration</span> schaltet den SSH-Dienst frei, sodass er sich &uuml;bers Netz erreichen l&auml;sst.

Abbildung 3: Das YaST-Modul Firewall-Konfiguration schaltet den SSH-Dienst frei, sodass er sich übers Netz erreichen lässt.

Ziel ist es, den Zugang zum Dienst ssh in der Zone public zu gestatten: Wie Sie im linken Teilfenster sehen, handelt es sich dabei um die Zone, in der im Auslieferungszustand die Netzwerkkarte des Computers liegt. Dass das angeschlossene Heimnetz in der Regel für hereinkommende Verbindungen aus dem Internet gar nicht zugänglich ist, liegt wiederum an Ihrem Internet-Router, der in der Regel seinerseits eingehende Verbindungen blockt.

Möchten Sie sich tatsächlich aus dem Internet auf dem Rechner anmelden, müssen Sie dies im von Ihnen genutzten Router ebenfalls noch erlauben – dazu später mehr.

Zur Freigabe auf der Ebene des OpenSuse-Rechners wählen Sie im zweiten Unterfenster von links den Eintrag public (Abbildung 3). Im rechten Bereich scrollen Sie bis zum Eintrag ssh und aktivieren die passende Checkbox. Nun ist der Port für SSH offen, allerdings nur bis zum nächsten Systemstart. Um ihn permanent zu öffnen, wählen Sie im Menü Optionen den Punkt Runtime auf dauerhaft.

Modernisiert

OpenSuse Leap 15.1 hat die Oberfläche des YaST-Moduls Firewall deutlich entschlackt (Abbildung 4). Sie brauchen dort nur noch in der Liste ganz links die Zone public auszuwählen, in der linken Liste des zentralen Bereichs (Bekannt) ssh zu markieren und die Option durch einen Klick auf Hinzufügen der rechten Liste (Erlaubt) hinzuzufügen. Ein Klick auf Übernehmen schaltet den Port permanent frei.

Abbildung 4: OpenSuse Leap&nbsp;15.1 hat das bei der Vorg&auml;ngerversion reichlich un&uuml;bersichtliche YaST-Modul zur Firewall-Konfiguration neu gestaltet.

Abbildung 4: OpenSuse Leap 15.1 hat das bei der Vorgängerversion reichlich unübersichtliche YaST-Modul zur Firewall-Konfiguration neu gestaltet.

Nun lässt sich der Rechner von jedem anderen im lokalen Netz aus per SSH erreichen – vorausgesetzt, auf dem zugreifenden Computer läuft nicht ebenfalls eine Firewall, die das blockt. Doch für den Zugriff brauchen Sie noch die IP-Adresse des Rechners, den Sie aus der Ferne kontaktieren möchten.

Geben Sie dazu auf der Konsole ip a ein (Abbildung 5). Relevant ist die Ausgabe für das zweite Interface (eth0 oder enp1s0) nach dem stets vorhandenen virtuellen Loopback-Gerät. Die unter den ganzen gelisteten Parametern nicht immer einfach zu findende IPv4-Adresse ist die erste Zahl in der mit inet beginnenden Zeile. Der Schrägstrich und die folgende zweistellige Zahl gehören nicht mehr dazu.

Abbildung 5: Mit etwas &Uuml;bung lesen Sie aus der Ausgabe des Befehls <code>ip a</code> die IPv4-Adresse und das dauerhafte lokale IPv6-Pendant heraus.

Abbildung 5: Mit etwas Übung lesen Sie aus der Ausgabe des Befehls ip a die IPv4-Adresse und das dauerhafte lokale IPv6-Pendant heraus.

Nun brauchen Sie nur noch ssh -X IP in einem Terminal einzugeben, um sich auf dem Rechner mit der entsprechenden IP anzumelden. Der Parameter -X sorgt dabei für sogenanntes X11-Forwarding. Das bedeutet, dass die Fenster grafischer Programme ebenfalls auf dem lokalen Rechner erscheinen.

Fügen Sie den Parameter -C hinzu, komprimiert SSH die über des Netz verschickten Daten. Bei heute üblichen Übertragungsraten bremst das allerdings in der Regel eher, als dass es beschleunigt – es sei denn, das Netzwerk ist überlastet.

Verbinden sich zwei Rechner zum ersten Mal miteinander, erscheint zunächst die Frage Are you sure you want to continue connecting (yes/no)?. Sie enthält zusätzlich noch den sogenannten Fingerprint, also eine Art ID. Bei Verbindungen innerhalb des LANs beantworten Sie die Frage in der Regel mit [Y].

Danach liegt der unveränderliche und nicht ohne Weiteres zu fälschende Fingerabdruck der Gegenstelle in der Datei .ssh/known_hosts im Home-Verzeichnis. Melden Sie sich später erneut an, stellt das sicher, dass Sie tatsächlich mit dem richtigen Computer kommunizieren und nicht mit einem eventuell dazwischengeschobenen Angreifer.

Arbeiten Sie nur mit der grafischen Oberfläche, kennen Sie möglicherweise die Namen der auszuführenden Dateien nicht. Aber das System hilft Ihnen, die nur aus dem Startmenü bekannten Programme auf der Konsole zu verwenden: Oft lauten die Namen ähnlich, außer dass sie nur Kleinbuchstaben enthalten.

Sie brauchen nur die ersten paar Buchstaben zu tippen; anschließend vervollständigen Sie dann den Namen per Tabulator, sofern er bereits eindeutig ist. Finden Sie den richtigen Namen so nicht, dann klicken Sie im KDE-Startmenü mit der rechten Maustaste auf den Eintrag und wählen Anwendung bearbeiten. Im sich öffnenden Dialog finden Sie den Namen der Binärdatei im Reiter Programm im Feld Befehl.

Tunnel nach außen

Wie erwähnt blocken Internet-Router aus Sicherheitsgründen normalerweise alle Zugriffe aus dem Internet. Bei fast allen Geräten lässt sich jedoch für bestimmte Dienste eine Ausnahme machen. In der verbreiteten Fritzbox gelingt dies recht einfach.

Öffnen Sie in der Weboberfläche des Routers den Menüpunkt Internet | Freigaben und klicken dort auf Gerät für Freigabe hinzuzufügen. Im nächsten Formular (Abbildung 6) wählen Sie im Ausklappmenü Gerät ganz oben den Namen eines Rechners im LAN aus. Können Sie die dort erscheinenden Namen nicht zuordnen, zeigt die Eingabe von hostname auf der Konsole den Namen des betreffenden Rechners.

Abbildung 6: In der Fritzbox w&auml;hlen Sie den Rechner f&uuml;r die Port-Freigabe anhand seines Netzwerknamens, statt per Hand die IP-Adresse einzugeben.

Abbildung 6: In der Fritzbox wählen Sie den Rechner für die Port-Freigabe anhand seines Netzwerknamens, statt per Hand die IP-Adresse einzugeben.

Als Alternative zur Auswahl per Rechnername steht der Punkt IP-Adresse manuell eingeben bereit. Die dann abgefragte IPv4-Adresse und IPv6 Interface-ID finden Sie per Eingabe von ip a auf der Konsole heraus: Die IPv4 ist wie schon erläutert die Zahl hinter dem Präfix inet bis zum Schrägstrich aus dem Block für das Netzwerkgerät (enp1s0 oder wlan0).

Die IPv6-Adresse finden Sie als Kombination aus Buchstaben und Zahlen in der Zeile hinter inet6, auf die eingerückt der Text valid_lft forever folgt. Die von der Fritzbox geforderte IPv6 Interface-ID bilden, vom Ende her gelesen, die von Doppelpunkten getrennten Zahlengruppen, die der Anzahl der Eingabefelder im Router entsprechen.

Haben Sie das Gerät durch seinen Namen oder über seine Adresse identifiziert, klicken Sie auf Neue Freigabe und wählen im folgenden Dialog die Option Portfreigabe (Abbildung 7). Unter Anwendung wählen Sie Andere Anwendung, als Bezeichnung dient SSH, und als Protokoll wählen Sie TCP aus. Für Port an Gerät geben Sie ins linke Feld 22 ein und für Port extern gewünscht ebenfalls 22.

Abbildung 7: SSH kennt die Fritzbox nur als <span class="ui-element">Andere Anwendung</span>. Das bedeutet aber lediglich, dass Sie die Portnummer&nbsp;22 per Hand eingeben m&uuml;ssen.

Abbildung 7: SSH kennt die Fritzbox nur als Andere Anwendung. Das bedeutet aber lediglich, dass Sie die Portnummer 22 per Hand eingeben müssen.

Wenn Sie das Kästchen Freigabe aktivieren abwählen, speichern Sie die nicht aktive Freigabe, um sie später schneller wieder zu nutzen. In der Regel geben Sie den Internetzugriff über IPv4 und IPv6 frei: Zwar ist die IPv4-Adresse einfacher zu handhaben, doch obwohl Provider beide Adressen vergeben, ist die IPv4-Variante in der Regel von außen nicht zu erreichen (Stichwort Dual Stack light).

Die beiden IPs nennt Ihnen die Fritzbox auf der Seite Internet | Online-Monitor, doch je nach Provider ändern sie sich täglich. Abhilfe schafft der vom Hersteller AVM angebotene Dienst MyFRITZ [2]. Er erlaubt es, die von der Fritzbox unter Internet | MyFRITZ-Konto unten genannte Ihre MyFRITZ-Adresse nach der Portfreigabe für die SSH-Anmeldung zu nutzen, und zwar ohne Internetzugriff auf die Fritzbox über Https zu aktivieren.

Bedenken Sie, dass sich über diese Adresse jeder, der das Passwort kennt, vom Netz aus am Rechner anmelden kann. Stellen Sie also unbedingt sicher, dass das Passwort für den Account aus einer Kombination von Buchstaben und Zahlen besteht, die so in keinem Wörterbuch zu finden ist. Besser noch verwenden Sie einen SSH-Schlüssel, den Sie zusätzlich mit einem Passwort schützen.

Zähe Reaktion

Beim Arbeiten über das Internet per SSH reagieren grafische Programme manchmal quälend langsam. Das kann zum einen an der zu niedrigen Upstream-Bandbreite der Internet-Verbindung liegen, zum anderen an zu hohen Latenzen (Verzögerungen unabhängig von der Bandbreite). Darüber hinaus ist das Starten von grafischen Programmen im Terminal nicht jedermanns Sache.

Abhilfe verspricht hier VNC [4]: Es macht in schneller Folge Bitmaps des gesamten Desktops samt Startmenü und überträgt diese Bilder anschließend komprimiert. Bei ausreichender Kompression und nicht zu großer Bildschirmauflösung reagieren die Anwendungen spontaner als bei einem SSH-Forwarding von grafischen Programmen über das Internet.

Dafür sinkt mit steigender Kompression die Qualität der Anzeige, während sie mit SSH stets originalgetreu ausfällt. Darüber hinaus sollte die Auflösung des anzeigenden Geräts wenigstens in etwa mit jener des ferngesteuerten Desktops übereinstimmen – ansonsten sehen Sie die Oberfläche des entfernten Rechners nur als kleines Fenster, oder die Bedienelemente lassen sich durch zu starke Verkleinerung nur schwer bedienen.

Für eine VNC-Verbindung brauchen KDE-Anwender keinen systemweiten Server-Prozess einzurichten. Vielmehr starten Sie das KDE-Programm Krfb (Abbildung 8), um die Arbeitsfläche freizugeben. Auf dem entfernten Rechner greift das KDE-Programm Krdc (Abbildung 9) auf die Freigabe zu. Krfb schützt die Freigabe mit einem Passwort. Außerdem fragt es bei jedem neuen Zugriff noch einmal nach. Beide Programme sind nicht vorinstalliert, stehen aber in den Standard-Repositories bereit.

Abbildung 8: Sofort nach seinem Start gibt das Programm Krfb den Desktop frei.

Abbildung 8: Sofort nach seinem Start gibt das Programm Krfb den Desktop frei.


Abbildung 9: In Krdc geben Sie zun&auml;chst die IP-Adresse des Rechners ein, auf dem Krfb l&auml;uft.

Abbildung 9: In Krdc geben Sie zunächst die IP-Adresse des Rechners ein, auf dem Krfb läuft.

So sicher das wirken mag: Es schützt nicht vor dem großen sicherheitstechnischen Manko des VNC-Protokolls. Das überträgt Passwörter unverschlüsselt – für eine Freigabe via Internet heutzutage gänzlich indiskutabel. Zum Glück existiert der Ausweg, die Verbindung über das schon erwähnte SSH zu tunneln. Dabei verpackt das verschlüsselte SSH-Protokoll die Daten der VNC-Sitzung. Größeren Einfluss auf die Performance hat dies bei heutigen CPUs kaum.

Außerdem genügt es, die Firewall – und, wenn gewünscht, die Fritzbox – für SSH zu konfigurieren. Ein weiterer Port speziell für VNC ist dann nicht mehr erforderlich. Das sollte aufgrund des angesprochenen Sicherheitsproblems höchstens in der OpenSuse-Firewall für das lokale Netz erfolgen. Dazu gehen Sie im YaST-Modul wie für SSH beschrieben vor, wählen statt ssh jedoch vnc-Server.

Flink aufgesperrt

Mit dem Start von Krfb ist die Freigabe des Desktops eigentlich schon erledigt: Das Programm zeigt die Adresse, auf die Sie mittel Krdc zugreifen. Das vorausgewählte, zufällige Passwort können Sie über den Stift-Button verändern. Für ein temporäres Aussetzen der Freigabe, ohne das Programm zu beenden, deaktivieren Sie das Kästchen vor Freigabe für die Arbeitsfläche aktivieren.

Hinter dem letzten Doppelpunkt folgt die Nummer des Ports, die in der Standardeinstellung immer 5900 lautet. Als Adresse zeigt Krfb stets die sperrigere IPv6-Adresse an, sofern es eine solche gibt. Im Heimnetz funktionieren aber auch IPv4-Adressen. Diese finden Sie wie schon beschrieben mit ip a auf der Konsole heraus.

Starten Sie nun auf dem entfernten Rechner Krdc. Hier geben Sie in das Feld Verbinden mit hinter dem Ausklappmenü, in dem VNC gewählt sein sollte, die IP-Adresse ein. Den Standard-Port 5900 ergänzt das Programm.

Nach Drücken der Eingabetaste erscheint der Dialog Rechner-Einrichtung. Hier wählen Sie als Verbindungsart die Qualität der VNC-Verbindung in drei Stufen, für normale Internet-Verbindungen am besten Mittlere Qualität. Für VNC im lokalen Netz eignet sich Hohe Qualität.

Normalerweise zeigt Krdc den Remote-Desktop in der Originalauflösung. Fällt die höher aus als am anzeigenden Rechner, aktivieren Sie die Option Auf folgende Größe skalieren und wählen entweder per Hand eine geeignete Auflösung oder Aktuelle Bildschirmauflösung.

Aktivieren Sie nun die Checkbox Über SSH-Tunnel verbinden. Daraufhin erscheint der Abschnitt Einstellungen für den SSH-Tunnel. Setzen Sie dort die Option Tunnel über loopback-Adresse, und geben Sie den Benutzernamen des Anwenders ein, der auf dem entfernten Rechner die Freigabe gestartet hat.

Nach einem Klick auf Ok fragt Krdc nach dem SSH-Passwort. Dabei handelt es sich um das Benutzerpasswort des freigebenden Anwenders. Dann folgt noch die Abfrage des in Krfb gesetzten Passworts, wenn es nicht bereits zwischengespeichert ist. Nach dessen Eingabe fragt das Freigabe-Programm auf dem entfernten Rechner um Erlaubnis. Wird sie dort gewährt, haben Sie Zugriff auf die Arbeitsfläche.

Um nicht bei jedem Verbindungsaufbau zum entfernten Rechner laufen zu müssen, wenn Sie alleine an zwei Rechner arbeiten, gibt es die Funktion Unbeaufsichtigten Zugriff aktivieren. Sie unterdrückt die sonst in Krfb übliche Rückfrage bei der Freigabe. Setzen Sie dazu noch mit dem Schalter hinter der Option ein Passwort.

Fazit

SSH ist die erste Wahl für den schnellen Zugriff auf entfernte Rechner. Bei grafischen Programmen oder dem Übertragen der ganzen Arbeitsfläche bietet sich stattdessen VNC an. Damit reagieren die Applikationen schneller, und in Kombination mit SSH bleiben die Daten vor neugierigen Blicken geschützt. KDE stellt mit dem Freigabeprogramm Krfb und dem Client Krdc zwei intuitive VNC-Programme bereit, die außerdem das für die Arbeit außerhalb des sicheren LANs gebotene Tunneln über SSH zum Kinderspiel machen. 

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 07/2019 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben