HowTo: SSH – eine Übersicht

SSH ist ein Dienst zum Fernsteuern von Rechnern über unsichere Netze (Internet). Fernsteuern bedeutet in diesem Fall

  • der Befehl ssh eröffnet die Möglichkeit auf das Terminal des entfernten Rechners zugreifen zu können und
  • Daten vom lokalen zum entfernten Rechern kopieren zu können und umgekehrt (scp oder sftp).

SSH bietet keine grafische Oberfläche, sondern ist ein reines Kommandozeilentool.

Authentifizierungsmethoden

SSH verfügt über eine Vielzahl von Authentifizierungsmethoden (so können beispielsweise PAM-Module eingebunden oder Keberos verwendet werden). Von den vielen Möglichkeiten werden in diesem Zusammenhang nur die zwei wichtigsten besprochen:

  • Password-Authentication und
  • Public-Key-Authentication
    • ohne Passphrase
    • mit Passphrase

Die Standardmethode sich mit SSH an einem entfernten Rechner anmelden zu können ist die Passwort-Authentication. Sie ist innerhalb eines kleinen, übersichtlichen lokalen Netzwerks akzeptabel. Über unsichere Leitungen (Internet) hinweg jedoch zu unsicher. Hinzu kommt vielleicht der Wunsch, sich auf dem entfernten Rechner anmelden zu können, ohne ständig nach einem Passwort gefragt zu werden (Public-Key-Authentication ohne Passphrase).

Das Public-Key-Verfahren verwendet ein asymmetrisches Schülsselpaar (genannt public und private key), wobei der public key (öffentlicher Schlüssel) auf dem Server und der private key (privater Schlüssel) auf dem Client installiert werden müssen. Unter dem Server versteht man dann den Rechner, der ferngesteuert wird. Generiert wird das Schlüsselpaar in konsequenter Weise dann auf dem Client. Findet SSH auf dem Server einen zu einem lokalen private key passenden public key so wird ggf. die Passphrase abgefragt und dann die Verbindung hergestellt. Soll ein bestimmter Schlüssel verwendet werden, empfiehlt sich clientseitig das Einrichten einer config-Datei (siehe unten).

Wird keine passende Schlüsseldatei gefunden, schaltet SSH normalerweise automatisch auf Password-Authentication. Soll dies aus Sicherheitsgründen verhindert werden, muss diese abgeschaltet werden (siehe unten).

Bedienung

Password-Authentication

Benutzername und Passwort auf dem entfernten Rechner müssen bekannt sein. Dann kann man sich so anmelden:

  • Starten Sie ein Terminal
  • Im Beispiel rechts ist pi der Benutzername und raspi1,fritz.box der Name des Rechners.
  • Beim allerersten Mal wird der Fingerprint des Rechners angezeigt. Man kann so kontrollieren, dass man auch wirklich mit dem gewünschten Rechner verbunden ist und dass kein Angreifer sich dazwischengeschaltet hat. Sind Sie sicher, dass Sie mit dem gewünschten Rechner verbunden sind, geben Sie auf die Frage “Are you sure you want to continnue connecting ?” die Antwort “yes” ein.
  • Jetzt können Sie das Passort eingeben (es ist dasselbe Passwort, mit dem Sie sich an diesem Rechner direkt anmelden könnten).

Nun ist der Server Ihrem System bekannt und die Identität des Rechners wird ab jetzt automatisch überprüft. Sie können nun gleich das Passwort eingeben und erhalten nach dem Anmelden einen Bildschirm, der so aussehen könnte:

Auf welchem Rechner Sie sich gerade befinden, kontrollieren Sie am Besten mit den grünen prompts: Der ssh-Befehl wurde auf dem Rechner draco von Benutzer christian eingegeben. Durch Eingabe des Passworts hat er sich als Benutzer pi auf dem Rechner raspi1 angemeldet. Alle weiteren Befehle werden jetzt auf dem Rechner raspi1 ausgeführt. Zum Beispiel:

  • Der Befehl cd (change directory) wechselt vom Homeverzeichnis des Benutzers pi in das Unterverzeichnis Beispiele/EduKit1. Dies wird den blauen Zeichen des prompts angezeigt.
  • Mit ls (steht für list) werden die darin befindlichen Dateien angezeigt.
  • Mit exit landet man wieder beim ursprünglichen Rechner draco.

Dateien hoch- bzw. herunterladen

Um Datei zu verschieben wird der Befehl scp verwendet. Wollen wir z.B. die Dateien aus dem o.a. Verzeichnis auf unseren lokalen Rechner (draco) herunterladen, geht das so:

  • Achte darauf, dass du sich auf deinem lokalen Rechner befindest (prompt: christian@draco)
  • Erstelle ggf. ein Verzeichnis “Downloads”
  • Kopiere die Dateien:

Public-Key ohne Passphrase

Bei dieser Methode entfällt die Abfrage das Passworts. Die Authentifizierung entsteht durch den Vergleich der beiden Schlüsseldateien.

Public-Key mit Passphrase

Diese Methode ist die sicherste Methode. Jetzt wird jedoch wieder eine Passphrase benötigt. Unter einer Passphrase versteht man ein Passwort zum Entsperren einer Schlüsseldatei. Statt des Prompts “…. password:” wird dieser Text angezeigt:

Auch hier ist die Passphrase sicher zu wählen (siehe oben).

Sicherheitsaspekte

Password-Authentication

Zwar werden die Authentifizierungsdaten (Benutzername und Passwort) bei SSH nicht im Klartext übertragen, so ist diese Methode im Vergleich die unsicherste, weil sich Passwörter z.B. mit Brute-Force oft knacken lassen. Vom Anwender muss gewährleistet werden, dass er ein sicheres Passwort verwendet (min. 12 Zeichen mit Groß- und Kleinbuchstaben, Ziffern und Sonderzeichen). Die Anforderungen an sichere Passwörter steigen mit der Rechenleistung der Computer ständig an. Lange Passwörter kann man sich schlecht merken und es dauert gefühlt zu lange, bis man sie eingegeben hat. Aus diesem Grund neigen Anwender dazu, zu einfache Passwörter zu benutzen.

Public-Key ohne Passphrase

Durch Erzeugen eines Schlüsselpaares (privater und öffentlicher Schlüssel) kann auf die Eingabe eines Passwortes zunächst einmal verzichtet werden. Diese Anwendung beschränkt sich üblicherweise auf lokale Netze und ist dort als relativ sicher zu bewerten. Die beiden Schlüssel werden in zwei zueinander gehörenden Dateien (z.B. id-xyz-rsa (privater) und id-xyz-rsa.pub (öffentlicher Schlüssel) gespeichert. Der private Schlüssel verbleibt auf dem Client, der öffentliche muss auf den Server kopiert werden.

Da SSH aber bei fehlenden Schlüsseln automatisch auf die Password-Authentication zurückfällt, sollte in konsequenter Weise nach dem Hochladen der öffentlichen Schlüssel die Password-Authentication deaktiviert werden (siehe SSH-Server härten)

Die Schlüssel liegen üblicherweise im Unterverzeichnis /home/<Benutzername>/.ssh.

Public-Key mit Passphrase

Soll die SSH-Verbindung über das Internet erfolgen, muss der SSH-Port (üblicherweise 22) vom Router zum Server durchgestellt werden (Portweiterleitung). Ist dies der Fall, müssen hohe Sicherheitsanforderungen gestellt werden. Da Port 22 bei einem Portscan von Hackern sofort als SSH-Port erkannt wird, sollte ein unbekannter Port mit einer hohen Portnummer dafür verwendet werden. Wird z.B. der Port 33333 als SSH-Port verwendet, müssen Sie eines der folgenden Kommandos eingeben:

> ssh -p 33333 <Benutzer>@<Host>
> scp -P 33333 <Dateiname> <Benutzer>@<Host>:~/<Zielpfad>
> scp -P 33333 <Benutzer>@<Host>:~/<Dateiname> <Zielpfad>

Wird andererseits. durch einen Hackerangriff der private Schlüssel kompromittiert, kann bei einer passphraselosen Schlüsseldatei von jedem beliebigen Rechner aus mit diesem Schlüssel in den Server eingebrochen werden. Hier hilft es, die Schlüsseldatei mit einer Passphrase zu sichern. Ein Hacker müsste dann zusätzlich zu den SSH-Schlüsseln auch noch die Passphrase herausbekommen.

Server-Installation

Melden Sie sich auf dem Server an und installieren Sie

> sudo apt install openssh-server

Die Grundeinstellungen sind schon relativ sicher. Da man mit SSH unter Umständen ein mächtiges Werkzeug in Händen hält, sollte der SSH.Server nun gehärtet werden.

Client-Installation

Linux

Unter Linux ist der SSH-Client bei allen mir bekannten Distributionen schon vorinstalliert.

Mac

Installieren Sie Termius oder Prompt.

Windows

Installieren Sie Putty.

Mehr zum Thema

Siehe auch

Einzelnachweise

ssh-Logohttps://icon-icons.com/de/symbol/ssh-original-Wortmarke-logo/146335