In privaten Netzen und Kleinbetrieben, wo komplizierte Rechteregeln ganz oder teilweise entfallen können, sind Daten-, Web- und Streamingserver mit Linux schnell eingerichtet. Und angesichts geringer Benutzerzahlen genügen als Hardware kostengünstige Platinenrechner oder ausrangierte Notebooks.
Dieser Artikel geht auf den stets unentbehrlichen Serverdienst Open SSH ein, der nicht nur zur Fernwartung dient, sondern auch unkomplizierten Datenaustausch und Softwareverteilung ermöglicht. Im folgenden Beitrag legen wir fundierte Grundlagen für die Einrichtung von (Apache-)Webdiensten und Datenservern mit Samba.
1. SSH: Weit mehr als nur Fernwartung

SSH, die „Secure Shell“, ist zuverlässig, schnell, sicher und multifunktional. Kein Server, auch wenn seine Hauptaufgabe woanders liegt, sollte auf diesen Dienst verzichten. Wenn nur oder hauptsächlich Linux-Systeme kommunizieren, stellt sich eher die umgekehrte Frage, ob SSH nicht manchen anderen Dienst überflüssig macht. Ein SSH-Server ist letztlich für jedes Linux zu empfehlen – auch auf dem Desktop. Immerhin erfüllt SSH gleich drei Aufgaben:
1. Man erhält im Fernzugriff das voll funktionsfähige Terminal des „Servers“ inklusive der dort geltenden Konfiguration (Aliases, Variablen, Prompt et cetera) und allen dort installierten Terminalprogrammen (Htop, Midnight Commander, Inxi et cetera).
2. SSH verwendet sein eigenes Dateiübertragungsprotokoll SFTP (das mit FTP und FTPS nichts zu tun hat). Da alle grafischen Linux-Dateimanager dieses Protokoll beherrschen, eröffnet dies den unkomplizierten Datenaustausch am Desktop. Freigaben sind nicht nötig: Jeder Benutzer, der ein Systemkonto auf dem Server besitzt, darf beim Fernzugriff via Dateimanager genau das, wozu er auch direkt am Server mit seinem Konto berechtigt wäre.
3. SSH erlaubt via X11-Forwarding den Start grafischer Programme der „Server“, die beim zugreifenden Netzwerkclient angezeigt und dort uneingeschränkt (eventuell etwas zäher) genutzt werden können. Das ist attraktiv für Anwender, die sich in einer grafischen Konfigurationszentrale wohler fühlen als in den Konfigurationsdateien eine Ebene darunter. Es ermöglicht aber auch die Verteilung von Software, weil dann nicht jedes Programm und Tool auf jedem System installiert sein muss.
Siehe auch: So nutzen Sie den nativen SSH-Client von Windows
2. SSH: Einrichtung am Server
Auf Serverseite ist die einzige Voraussetzung für den SSH-Zugriff ein laufender Open-SSH-Server. Wenn Sie sich von vornherein für ein Serversystem entschieden haben, ist SSH in der Regel schon vorinstalliert und aktiv. Im Zweifel lässt sich dies mit
service ssh status
abfragen. Ist der SSH-Server noch nicht installiert, holen Sie das unter Debian/Ubuntu-Systemen mit diesem Kommando nach:
sudo apt install openssh-server
Nach erfolgter Installation ist der SSH-Server sofort mit Standardeinstellungen aktiv.
Exkurs zur SSH-Konfiguration: Die Standardkonfiguration ist sinnvoll und benötigt keine dringende Anpassung. Einsteiger tun gut daran, diese Standards erst mal zu belassen, da Änderungen die Komplexität erhöhen.
Trotzdem ist es gut zu wissen, woher der SSH-Server seine Einstellungen bezieht. Es handelt sich um die Konfigurationsdatei „/etc/ssh/sshd_config“, welche die Standards auskommentiert mit „#“ anzeigt. Nach Entfernen dieses Kommentarzeichens können Sie die Voreinstellung ändern. Die vielleicht interessanteste Änderung auch für weniger Erfahrene ist die Korrektur des Standards „#X11Forwarding no“:
X11Forwarding yes
Dies eröffnet den Fernstart grafischer Programme, wie später für die zugreifende Clientseite noch genauer erklärt wird. Die meisten weiteren Zeilen dienen in erster Linie dazu, die Sicherheitsstandards zu erhöhen oder zu senken. Zum Beispiel verhindert der Standard
#PermitRootLogin prohibit-password
eine Anmeldung des root-Kontos mit Passwort (eine Schlüsselanmeldung von root ist hingegen erlaubt). Im Heimnetz ist eine Lockerung zu
PermitRootLogin yes
vertretbar und vereinfacht viele Administrationsaufgaben. Änderungen an der Datei „/etc/ssh/sshd_config“ werden nach einem Systemneustart oder nach manuellem Neustart des Dienstes mit
sudo service ssh restart
gültig.
3. SSH-Terminal: Linux/Mac-OS als Client
Die Client-Komponente für den Zugriff auf SSH-Server ist auf allen Linux-Systemen und unter Mac-OS X standardmäßig vorinstalliert. Im Terminal und mit dem Tool ssh kommen Sie daher ohne Umschweife an den SSH-Server. Alles was Sie brauchen, ist ein Systemkonto auf dem Server und dessen Kennwort, ferner wahlweise die IP-Adresse oder den Hostnamen:
ssh ha@192.168.178.20
ssh ha@raspberry
Das Kennwort wird abgefragt. Wenn Sie mit
ssh 192.168.178.20
kein Konto angeben, wird erst das Konto und danach dessen Kennwort abgefragt. Beim allerersten Zugriff ist dem Clientsystem der Server noch nicht bekannt und Sie müssen die Verbindung mit „yes“ bestätigen. Künftig entfällt diese Abfrage, weil der Fingerabdruck des Servers auf dem Clientsystem unter „~/.ssh/known_hosts“ gespeichert wird.
Anmerkung: Die Datei „~/.ssh/known_hosts“ sollten Sie kennen, weil es nach Änderungen am Serversystem nötig werden kann, sie einfach zu löschen. Der SSH-Client interpretiert nämlich geänderte Servereinstellungen (mit dadurch geänderten Fingerprint) als mögliches Sicherheitsrisiko und verweigert den Zugang. Nach Löschen der Datei gilt der Server wieder als unverdächtiger Neuling, und nach Bestätigung mit „yes“ wird die Datei „known_hosts neu“ angelegt.
Über SSH arbeiten Sie auf dem entfernten System genauso wie im lokalen Terminal jedes Linux-Systems. Sie bearbeiten Konfigurationsdateien, installieren Programme oder versorgen das System mit Updates:
nano ~/.bashrc
sudo apt install mc
sudo apt update & apt upgrade
Diese klassische SSH-Fernwartung bleibt Terminalarbeit und fordert Terminal-Knowhow, lässt sich aber immerhin durch pseudografische Werkzeuge wie Midnight Commander , Htop oder Ncdu vereinfachen. Weitere komfortable SSH-Optionen beschreiben die nachfolgenden Punkte. Diesen Abschnitt beschließen wir mit zwei wichtigen Hinweisen:
1. Sie beenden eine SSH-Verbindung mit dem Befehl „exit“ oder mit der Tastenkombination Strg-D.
2. SSH benutzt den Netzwerkport 22 als Standard. Einen abweichenden Port (siehe „/etc/ssh/sshd_config“) geben Sie typischerweise – so etwa im Midnight Commander oder in grafischen Dateimanagern – nach einem Doppelpunkt nach der IP-Adresse an, also etwa 192.168.178.20:2222. Das Tool ssh benötigt aber mit
ssh -p 2222 ha@192.168.178.20
den expliziten Schalter „-p“.
4. SSH-Terminal: Windows als Client

Die Optionen unter Windows, sich mit SSH-Servern zu verbinden, sind die letzten Jahre inflationär gewachsen, wonach der SSH-Klassiker Putty (Kitty) längst nicht mehr alternativlos ist. Dennoch bleiben wir aus Gründen der Vereinfachung hier bei Putty/ Kitty. Ganz intuitiv ist Putty nicht, weil es fundamentale Einstellungen neben exotische Details stellt. Unterm Strich gewährleistet es dennoch die komfortable Verwaltung von SSH-Verbindungen.
Die Basiskonfiguration ist einfach: Sie geben unter „Host Name“ entweder den Hostnamen 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 und Feineinstellungen lohnt es sich aber, unter „Saved Sessions“ eine aussagekräftige Bezeichnung zu verwenden und jeden Server mit „Save“ dauerhaft zu speichern. Unter „Window –› Translation –› Remote character set“ sollten Sie immer den Eintrag „UTF-8“ wählen, damit Sonderzeichen in der SSH-Konsole korrekt angezeigt werden. Unter „Window –› Colors“ (sowie „Fonts“) bestimmen Sie Erscheinungsbild und Schriftgröße. Beachten Sie nach allen Änderungen, in der Übersichtsspalte auf „Session“ zu navigieren und mit „Save“ die Einstellungen zu speichern.
Neben Putty gibt es den Klon Kitty . Er unterscheidet sich nur dadurch, dass er die automatische Übergabe des Passworts erlaubt („Connection –› Data“) und die Serverdaten in Klartextdateien unter „KittySessions“ ablegt (statt in der Windows-Registry). Damit ist Kitty komfortabler, etwas unsicherer, aber für Heimnetzserver erste Wahl.
5. SSH-Terminal: Mobilgeräte als Client

Mobile Geräte sind nicht unbedingt erste Wahl für die SSH-Fernwartung. Der Bildschirm von Smartphones ist zu klein, zumal die Tastatur eingeblendet bleiben muss. Trotzdem ist ein schneller Eingriff in eine Konfigurationsdatei oder das Abholen einer wichtigen Datei auch mit Smartphones oder Tablets realisierbar. Entsprechende Apps finden Sie mit der Suche nach „SSH“ im Apple- wie im Google Store.
Die englischsprachige App „Termius“ ist mit der beste Kandidat für Android wie iOS. Unter „Host“ legen Sie mit dem Plus-Zeichen einen Eintrag an („New host“). Im Prinzip genügt der Eintrag der IP-Adresse, falls der Server den Standardport 22 nutzt. Man kann bei geringen Sicherheitsansprüchen im lokalen Netz auch gleich das Benutzerkonto und das Kennwort hinterlegen. Allgemeine Einstellungen zu Schriftgröße und Farben werden unter den „Settings“ eingetragen, die für alle Hosts gelten. Um Einstellungen an einem bereits eingetragenen Server („Host“) zu ändern, hilft längeres Drücken des Host-Eintrags, was den Host markiert und in der kleinen Symbolleiste den Editierstift einblendet. Für bereits eingetragene Rechner genügt ein Fingertipp, um die SSH-Verbindung zu starten.
6. SFTP-Datenaustausch: Linux/ Mac-OS als Client

Wie schon in Punkt 1 angesprochen, bietet SSH sein eigenes Dateiprotokoll SFTP. Da Linux-Dateimanager dieses Protokoll beherrschen, ist zwischen Linux-Rechnern Samba oder NFS entbehrlich. Mit der Syntax
sftp://[Benutzer]@[IP-Adresse]:[Port]/[Ordner]/
oder wahlweise auch
ssh://[Benutzer]@[IP-Adresse]:[Port]/[Ordner]/
in der Adresszeile eines Dateimanagers (Strg-L) haben Sie – nach Kennworteingabe – umstandslos die Dateien des entfernten Rechners vor sich. Port und Ordner können entfallen, falls Standardport 22 genutzt wird und das gesamte Dateisystem angezeigt werden soll – also etwa:
sftp://ha@192.168.178.20
Diese Methode eignet sich für Datensicherungen oder das Editieren von Konfigurationsdateien ebenso wie für das Abspielen von Musik- oder Filmmedien und ist einem Samba-Zugriff mindestens ebenbürtig. Theoretisch lässt sich das Dateisystem eines SSH-Servers mit
sshfs ha@192.168.178.20 ~/Raspi4
auch in das lokale Dateisystem einbinden, sofern das Paket „sshfs“ installiert ist. In den meisten Fällen wird aber der Weg über den grafischen Dateimanager völlig befriedigen, zumal Sie die einmal gemountete SFTP-Quelle einfach als Lesezeichen ablegen können.
7. SFTP-Datenaustausch: Windows als Client

Um es auf den Punkt zu bringen: Der Datentransport zwischen Windows und SSH-Servern ist möglich, eine direkte Daten- oder Mediennutzung am Server hingegen nicht: Wer mit Windows Dateien vom SSH-Server bearbeiten, ändern oder einfach abspielen will, kommt an einer zusätzlichen Samba-Lösung nicht vorbei. Geht es hingegen nur um reine Dateiaktionen, also das Kopieren, Verschieben und Löschen von Daten, dann hilft unter Windows das externe Tool Filezilla . Filezilla ist den meisten Nutzern als FTP-Client geläufig, beherrscht aber auch SFTP. Sie können daher den SSH-Server mit seiner IP, den Authentifizierungsdaten („Verbindungsart: Normal“) und SFTP-Protokoll in den Servermanager eintragen und sich verbinden. Die Zwei- Fenster-Anordnung erlaubt einfache Navigation im lokalen Dateisystem und am Server sowie Datenaustausch per Doppelklick oder Drag & Drop.
8. SSH: Grafische Programme

Sofern der SSH-Dienst entsprechend konfiguriert ist (siehe Punkt 2), lassen sich via SSH auch grafische Programme starten, die dann auf dem Client angezeigt werden (X11-Forwarding). Mit Linux-Clients 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 das gewünschte Programm. Auf Wunsch lässt sich das auch schon beim SSH-Aufruf anfordern (Beispiel):
ssh -X ha@192.168.178.20 thunderbird
Auch unter Windows bringen Sie grafische Programme des SSH-Servers auf den Clientdesktop. Putty/Kitty muss unter „Connection –› SSH –› X11 –› Enable X11 forwarding“ und ebenda „X display location“ mit der Angabe „localhost:0“ darauf vorbereitet werden. Ferner benötigen Sie aber noch den kostenlosen X-Server Xming . Xming muss laufen, bevor Sie die SSH-Session starten. Xming ist nicht anspruchsvoll und kann unter Windows auch dauerhaft mitlaufen (10 bis 20 MB im Wartezustand).
9. SSH-Anmeldung ohne Passworteingabe

Die Eingabe eines kurzen Systemkennworts beim Start einer SSH-Sitzung ist an sich eine zumutbare Pflicht. Es gibt aber Szenarien, die – jenseits des Komfortaspekts – einen passwortlosen Zugang sinnvoll machen. Das gilt besonders für automatisierte Datensicherung (etwa mit rsync), die ohne Interaktion ablaufen soll, aber auch für den störungsfreien Start von ausgelagerter Software. Mit
ssh-keygen
erstellen Sie zunächst auf Linux-Client-PC (nicht auf dem Server!) einen Zugangsschlüssel. Weitere Optionen sind dabei möglich, aber nicht zwingend. Der Schlüssel wird standardmäßig unter „~/.ssh/id_rsa.pub“ gespeichert, was Sie bestätigen müssen.
Das ferner abgefragte Passwort zum Schutz des Schlüssels können Sie mit Eingabetaste ignorieren. Anschließend kopieren Sie den Schlüssel zum Server (Beispiel):
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.178.20
Beachten Sie, dass der Schlüssel für das Konto am Server gilt, das Sie vor der Server- IP angeben – hier „root“. Auf Clientseite gilt es wiederum für das Konto, mit dem Sie gerade arbeiten. Falls der Server einen vom Standardport 22 abweichenden Port verwendet, kann das Tool ssh-copy-id diesen über den Schalter „-p [Port]“ mitteilen.
Starten Sie danach die erste SSH-Sitzung mit Schlüsselanmeldung. Das System fragt nach dem vorher vergebenen Schutzpasswort für den Schlüssel – also genügt die Eingabetaste, falls Sie das Schutzpasswort bei der Schlüsselerstellung ignoriert haben. Alle künftigen Verbindungen funktionieren dann ohne interaktive Eingabe. Auch Putty unter Windows kann sich mit einem Schlüssel beim Server authentifizieren, benötigt dafür aber die zusätzlichen Tools Puttygen und Pageant. Einfacher ist es im Heimnetz, statt Putty das nonchalantere Kitty zu verwenden, das die Passwortübergabe unter „Connection –› Data“ direkt anbietet: Hier tragen Sie das Konto einfach neben „Autologin username“ und das Passwort neben „Auto-login password“ ein.
Siehe auch: Die 10 wichtigsten Linux-Befehle für Netzwerk und Internet