2080026

SSH-Fernwartung für Ihren Linux-Server

19.06.2015 | 12:11 Uhr |

Linux-Server lassen sich im lokalen Netz oder über das Internet administrieren. Bevorzugtes Werkzeug ist die Secure Shell (SSH) in Kombination mit dem Midnight Commander. Der Artikel zeigt, wie’s geht.

Ob auf ausgewachsenen PCs oder auf kleinen Platinen: In der Server-Rolle spielt Linux seine Stärken voll aus. Daten-Server, Webserver oder Multimedia-Server sind mit Linux schnell eingerichtet. Vor allem aber lassen sie sich dann ohne Peripheriegeräte wie Monitor oder Tastatur komplett über das Netzwerk kontrollieren, konfigurieren, erweitern. Als Client für die Administration und für Dateioperationen kommt praktisch jedes Gerät in Betracht – ein PC mit Linux, Mac-OS oder Windows ebenso wie ein Tablet oder Smartphone. Dieser Beitrag konzentriert sich auf die Fernwartung mit Linux-und Windows-PCs.

Linux als klassischen Webserver mit Apache

Die Voraussetzungen für die Fernwartung mit SSH

Auf Server-Seite ist die einzige Voraussetzung für den SSH-Zugriff ein laufender Open-SSH-Server. Wenn Sie sich bei der Systemwahl für ein Server-System entschieden haben, ist der Open-SSH-Server in der Regel vorinstalliert und auch standardmäßig aktiv. Dann haben Sie von einem Linux-Rechner aus mitssh [benutzer]@[hostname] oderssh [benutzer@{IP-Adresse] sofort Zugriff. In diesem Fall lässt sich der Server von Beginn an ausschließlich über das Netz verwalten, ohne jemals eine Ein-und Ausgabeperipherie zu benötigen.

Ist Open SSH noch nicht installiert, müssen Sie das nachholen und dafür zumindest vorübergehend Monitor und Tastatur anschließen.

Holen Sie sich dann im Terminal die benötigte Komponente, auf Debian/ Ubuntu-basierten Systemen mit diesen Kommandos:

sudo apt-get update  sudo apt-get install openssh-server 
1_First-SSH imported
Vergrößern 1_First-SSH imported

Nach erfolgter Installation ist der Open-SSH-Server standardmäßig aktiviert. Probieren Sie die Komponente dann auf dem Server selbst oder auf einem anderen Linux-Rechner aus, indem Sie auf der Kommandozeilessh [benutzer]@[hostname] eingeben, wobei Sie die Stellvertreter durch den tatsächlichen Log-in-und Host-Namen ersetzen. Beim allerersten Zugriff ist dem Client der Server noch nicht bekannt, und Sie müssen die Verbindung ausdrücklich mit „yes“ bestätigen. Künftig entfällt diese Abfrage, weil der Fingerabdruck des Servers auf dem Client unter „.ssh/known_hosts“ gespeichert ist. Sie beenden eine SSH-Verbindung mitexit oder der Tastenkombination Strg-D.

Voraussetzungen beim Client: Auf Linux-Systemen und unter Mac-OS X ist der SSH-Client immer vorinstalliert. Über das Terminal kommen Sie daher mitssh ohne Umschweife an Ihren Server. Da einfache Bash-Aliases genügend Benutzungskomfort leisten und sich dabei auch die Kennworteingabe sparen lässt (siehe unten „sshpass“), besteht unter Linux wenig Anlass, zusätzlich den grafischen SSH-Client Putty zu installieren.

2_Putty-Kitty imported
Vergrößern 2_Putty-Kitty imported

Ganz anders steht es, wenn Sie einen Linux-Server mit einem Windows-PC warten wollen. Hier sind Sie auf Putty angewiesen. Putty erlaubt eine komfortable Verwaltung mehrerer SSH-Verbindungen. Die Basiskonfiguration ist einfach: Geben Sie in Putty unter „Host Name“ entweder den Rechnernamen oder die IP-Adresse des Servers an. Mit „Connection type: SSH“ und dem vorgegebenen Standardport 22 können Sie sich mit „Open“ bereits verbinden. Für häufigeren Zugriff lohnt es sich, unter „Saved Sessions“ eine aussagekräftige Bezeichnung zu verwenden, „Appearance“, „Color“ und „Data“ (Benutzer) einzustellen und dies dann mit „Save“ dauerhaft zu speichern. Unter „Window fi Translation fi Remote character set“ sollten Sie immer den Eintrag „UTF-8“ wählen, damit Sonderzeichen und Linien in der SSH-Konsole korrekt angezeigt werden.

SSH-Konsole und Midnight Commander

Via SSH arbeiten Sie auf dem entfernten System genauso wie im nativen Terminal eines Linux-Systems. Sie bearbeiten Konfigurationsdateien, installieren Programme mit apt-get oder versorgen das System mit Updates, wie folgende Beispiele andeuten sollen:

nano ~/.bashrc sudo apt-get install mc sudo apt-get update sudo apt-get dist-upgrade 

Dateioperationen führen Sie mit „cp“, „mv“ und „rm“ aus oder komfortabler mit dem Midnight Commander .

Der Midnight Commander eignet sich nicht nur in der SSH-Konsole als Dateimanager für das Server-System, sondern auch für den Datenaustausch mit dem Client-Rechner. Er ist nämlich selbst ein SSH-Client über die Option „Shell-Verbindung“ in den Menüs „Links/Rechts“. Starten Sie den Dateimanager mitmc im Terminal des Client-Rechners, und verwenden Sie die „Shell-Verbindung“. Wie beim SSH auf der Kommandozeile geben Sie den Servernamen oder die IP-Adresse an, optional bereits mit dem gewünschten User (sepp@192.168.0.20). Nach Eingabe des User-Kennworts zeigt der Midnight Commander wieder seine beiden Fensterhälften, und Sie können Dateien zwischen dem lokalen und dem entfernten System austauschen oder auch Konfigurationsdateien auf dem entfernten System bearbeiten. Für interaktive Dateiaktionen ist der Commander den sonstigen Möglichkeiten wie Secure Copy (scp) oder Rsync eindeutig vorzuziehen. Den Midnight Commander gibt es auch für Mac-OS X. Die Windows-Variante bietet hingegen keine „Shell-Verbindung“.

WebDAV-Server unter Linux einrichten

MC und abweichende SSH-Konfiguration: Der Midnight Commander erwartet bei einer „Shell-Verbindung“ eine Kommunikation über den SSH-Standardport 22. Für abweichende Ports scheint das Tool zunächst ungeeignet, weil das Eingabefeld keine speziellere Konfiguration erlaubt. Aber auch dafür gibt es eine Lösung: Legen Sie auf dem zugreifenden Linux-Client-System (nicht auf dem Server!) unter „/home/[user]/.ssh“ die Datei „config“ neu an. Dort definieren Sie einen oder auch mehrere Server in folgender Weise:

Host Raspi Hostname 192.168.0.20 Port 1234 User root
3_MC-Fish imported
Vergrößern 3_MC-Fish imported

Ab sofort genügt es, im Midnight Commander beim Eingabefeld der „Shell-Verbindung“ als Host den Alias-Namen „Raspi“ einzugeben. Die übrigen Infos über IP, Port, User werden automatisch aus der Config-Datei ausgelesen. Somit kann sich der Midnight Commander auch über einen anderen Port als Standard 22 verbinden.

Grafische Programme über SSH (X11-Forwarding)

Via SSH lassen sich auch grafische Programme starten und auf dem Client anzeigen. Auf einem Linux-Client ist der Aufwand am geringsten: Hier verwenden Sie beim SSH-Start einfach den zusätzlichen Schalter „-X“ (Großschreibung!):

ssh –X [benutzer]@[hostname] 

In der SSH-Konsole starten Sie dann die gewünschten Programme – etwa:

software-center & gedit /etc/ssh/sshd_config & 

Ein „&“ sorgt dafür, dass der SSH-Prompt weiter benutzbar ist, ohne „&“ bliebe dieser bis zum Abschluss des grafischen Programms gesperrt.

Auch unter Windows bringen Sie grafische Programme des Servers auf den Client-Desktop. Neben dem unentbehrlichen Putty benötigen Sie noch den kostenlosen X-Server Xming . Xming muss laufen, bevor Sie die SSH-Session starten. Das Tool ist relativ schlank und kann auch dauerhaft laufen (10 bis 15 MB im Wartezustand). Unter Putty legen Sie entweder eine neue Session an oder ergänzen eine bestehende. Die maßgebliche Option finden Sie unter „Connection > X11 > Enable X11 forwarding“.

Diese müssen Sie aktivieren und außerdem als „X display location“ die Angabe „localhost:0“ eintragen. Sichern Sie die Konfiguration mit „Session > Save“. Eine so gestartete SSH-Sitzung erlaubt genau wie unter Linux den Aufruf von grafischen Programmen aus der SSH-Konsole.

SSH-Fernzugriff via Internet

Der Fernzugriff auf einen Linux-Server funktioniert auch über das Internet. Dazu muss der Router Anfragen an Port 22 (Standard für SSH) auf die lokale IP-Adresse Ihres Servers weiterleiten. In jüngeren Fritzboxen finden Sie die Einstellungen unter „Internet > Freigaben > Portfreigaben“. Nach „Neue Portfreigabe > Andere Anwendungen“ geben Sie als Protokoll „TCP“, neben „von Port“ die Zahl 22, neben „an Port“ ebenfalls die 22 ein. Das heißt: Was über die öffentliche IP an Port 22 ankommt, wird an den Port 22 der lokalen IP-Adresse des Servers geschickt. Um welches Gerät es sich handelt, tragen Sie neben „an Computer“ und „an IP-Adresse“ ein. Das Prinzip ist bei allen Routern ähnlich und unterscheidet sich nur in der Wortwahl und im Konfigurationsort. Beachten Sie, dass der Server eine feste IP-Adresse beziehen sollte, damit das Ziel der Weiterleitung eindeutig ist. Auch das erledigen Sie am besten im Router („Gleiche IPv4-Adresse zuweisen“, „DHCP-Reservierung“ oder ähnlich).

4_X11 imported
Vergrößern 4_X11 imported

Mit der Portfreigabe ist der Server im Web erreichbar: Sie verwenden dann beim SSH-Client einfach statt der lokalen Geräte-IP die öffentliche IP oder einen öffentlichen Dyn-DNS-Host-Namen. Wie Sie dynamisches DNS einrichten oder Ihre täglich wechselnde öffentliche IP auf Ihrer Homepage oder auch in der Cloud erreichbar machen, wäre ein Exkurs, der weit vom Thema SSH wegführte: Lesen Sie dazu den Online-Artikel der PC-WELT „ Dyn DNS im Eigenbau “.

SSH-Anmeldung ohne Passworteingabe

Es gibt für jeden Client Wege, sich die Passworteingabe bei der SSH-Anmeldung zu ersparen. Unter Linux können Sie auf dem Client-Rechner das Paket sshpass nachinstallieren. Die Anmeldesyntax sieht dann wie folgt aus

sshpass -p 'geheim' ssh user@host name

und lässt sich als bequemes Alias abkürzen. Genauso komfortabel, aber sicherer, ist ein Authentifizierungs-Schlüssel. Mit

ssh -t rsa 

erstellen Sie den Schlüssel auf dem Linux-Client-PC (nicht auf dem Server). Dabei müssen Sie ein Passwort für den Schlüssel festlegen. Der Befehl

ssh-copy-id -i user@hostname 

kopiert dann den öffentlichen Schlüssel in die Datei "~/.ssh/authorized_keys" auf den Server. Starten Sie dann die SSH-Sitzung mitssh user@hostname. Das System fragt nun nach dem eben vergebenen Passwort für den Schlüssel. Setzen Sie ein Häkchen vor „Diesen Schlüssel beim Anmelden automatisch entsperren“, damit Sie das Passwort nicht wieder eingeben müssen.

Auch für Windows gibt es zwei Optionen. Die einfache Variante: Verwenden Sie statt Putty dessen Klon Kitty, der die Passwortübergabe unter „Connection > Data“ direkt anbietet: Tragen Sie den User einfach neben „Auto-login username“ und das Passwort neben „Auto-login password“ ein. Putty und Kitty können sich aber auch mit einem SSH-Schlüssel beim Server authentifizieren.

Dafür benötigen sie allerdings die zusätzlichen Tools Puttygen und Pageant und eine manuelle Einrichtung des Schlüssels.

SSH-Fein-Tuning und Sicherheit

Wenn Sie einen Raspberry-Daten-Server im privaten Heimnetz betreiben, besteht kaum Grund zur Paranoia. Sobald der Server aber per Portfreigabe auch im Internet zu erreichen ist, erfordert das Zugangskennwort höhere Komplexität und die Konfiguration erhöhte Sensibilität. Die Einstellungen für SSH befinden sich in der Datei „/etc/ssh/sshd_config“. Änderungen dieser Datei werden erst wirksam, wenn Sie den SSH-Server mit

sudo service ssh restart

neu starten oder nachdem das System gebootet hat.

Folgende Maßnahmen erhöhen die Sicherheit: „Port 22“ erscheint gleich zu Beginn. Wenn Sie einen anderen Port definieren, kostet das einen Angreifer den erhöhten Aufwand, nach offenen Ports zu scannen. Beachten Sie, dass ein geänderter Port sowohl im Router bei der Portweiterleitung als auch in den SSH-Clients identisch anzugeben ist.

„LoginGraceTime 120“ (Standard) gibt einem Angreifer zwei Minuten Zeit, verschiedene User und Kennwörter auszuprobieren. Wenn Sie eine Spielart des Auto-Log-ons verwenden, sollten auch 12 Sekunden oder weniger ausreichen.

„PermitRootLogin yes“ ist deshalb riskant, weil mit „root“ ein leicht zu erratender Standard-User Zugang hat, zumal mit erhöhten Rechten. Ein Angreifer muss dann nur noch das Kennwort ermitteln. „PermitRootLogin no“ ist eine Möglichkeit, den root-Zugang zu verbieten, eine zweite ist es, die zusätzliche Zeile (Beispiel) „AllowUsers sepp“ anzufügen. Jedes andere Konto, also auch root, lehnt der SSH-Server dann ab. Der erlaubte User muss natürlich auf dem System angelegt sein.

Wenn Sie die Datei „/etc/ssh/sshd_config“ auf einem Server bearbeiten, der pur übers Netz verwaltet wird, sollten Sie sichergehen, dass Sie sich nicht versehentlich aussperren. Eine gute Absicherung ist die vorläufige Komplettfreigabe des Dateisystems (net usershare add sys / "" root:f). Dann können Sie eventuelle Fehler immer noch via Samba-Freigabe korrigieren.

Übersicht SSH-Clients auf allen Geräten

Linux: Terminal öffnen und SSH-Kommando eingeben – mehr ist unter Linux nicht erforderlich. Der grafische Client Putty ist unter Linux verfügbar, aber nicht nötig.

Mac-OS X: Auch unter Mac-OS X genügt das Terminal. Der SSH-Client auf dem Apple-System unterstützt allerdings nur die pure Kommandozeile. Für grafisches X11-Forwarding ist die zusätzliche Komponente Xquartz erforderlich. Grafische Programme lassen sich dann wie unter Linux interaktiv auf der SSH-Kommandozeile starten. Der Midnight Commander für Mac-OS ist ebenfalls SSH-fähig.

Windows: Putty und Kitty sind komfortable SSH-Clients für Windows. Der Putty-Klon Kitty unterscheidet sich von Putty dadurch, dass er die automatische Übergabe des Passworts erlaubt („Connection fi Data“) und die Server-Daten in Klartextdateien unter „\Kitty\Sessions“ ablegt (statt in der Windows-Registry). Damit ist Kitty komfortabler und portabler, aber etwas unsicherer. Für grafisches X11-Forwarding ist ein zusätzlicher X-Server erforderlich. Dies kann der „ Xming X Server “ übernehmen.

Chrome-Erweiterung: Für alle Desktop-Systeme (Linux, Windows, Mac-OS X) gibt es auch noch die Alternative, über den Chrome-Browser („Einstellungen > Erweiterungen“) die Chrome-Erweiterung „Serverauditor – SSH client“ zu beziehen. Die Erweiterung erscheint als eigenständige Software im Startmenü des jeweiligen Systems und lässt sich auch als Desktop-Verknüpfung oder in der Taskleiste unterbringen. Die Benutzung und Verwaltung mehrerer Server ist schicker als das pure Terminal, X11-Forwarding ist allerdings nicht vorgesehen.

Mobilgeräte: Mobile Geräte mit Touchscreen sind nicht unbedingt erste Wahl für die SSH-Fernwartung. Der Bildschirm selbst von Tablets ist zu klein, zumal die Tastatur immer eingeblendet bleiben muss. Trotzdem ist ein schneller Eingriff in eine Konfigurationsdatei oder das Abholen einer wichtigen Datei auch mit Smartphones oder Tablets realisierbar:

Android und iOS: Unter einigen Alternativen ist der kostenlose Serverauditor SSH/SFTP client für Android (1.6.9.6) und iOS (1.5.4) derzeit erste Wahl. Die App stammt vom gleichen Hersteller wie die oben genannte Chrome-Erweiterung.

Windows RT: Für RT-Tablets gibt es die App SSH-RT für knapp acht Euro im Microsoft-Store. Damit ist Windows RT das einzige System ohne kostenlosen SSH-Client. Die RT-App ist auf der Kommandozeile benutzbar, aber untauglich zur Bedienung des Midnight Commander.

Dieser Artikel stammt aus der LinuxWelt 3/2015

In der neuen LinuxWelt erklären wir Schritt für Schritt, wie Sie Linux als Server einrichten. In einem weiteren Special erfahren Sie alles über ein effizientes Power-Management bei Notebooks und PCs.

0 Kommentare zu diesem Artikel
2080026