Secure Shell mit Komfort

© Vadim Yerofeyev, 123RF

Aufgeschlossen

Wer mit der Secure Shell arbeitet, braucht sich beim Login nicht die Finger wundzutippen: Ein paar Einträge in der Konfiguration sparen viel Arbeit.

Für den schnellen Zugriff auf einen entfernten Rechner oder regelmäßige Wartungsarbeiten ist die Secure Shell [1] das optimale Werkzeug. Selbst im lokalen Netzwerk bietet es sich an, Hosts auf diesem Weg zu verwalten. So hängt etwa an einem Raspberry Pi oft weder Monitor noch Tastatur, oder ein NAS erlaubt neben dem Zugriff via Webinterface zusätzlich das Login in eine Shell.

Gerade dabei lohnt es sich aber, auf sichere Kommunikation zu achten, denn auf einem zentralen Datenspeicher liegen unter Umständen persönliche Daten, und der RasPi weiß, welche IoT-Geräte sich im Haushalt befinden. Aus gutem Grund haben die Entwickler daher für den Mini-Rechner den SSH-Server ab Werk erst einmal deaktiviert [2].

Haben Sie schon einmal mit der Secure Shell gearbeitet, dann kennen Sie in der Regel die wichtigen Handgriffe. Meist greifen Sie auf die freie Implementation OpenSSH [3] zurück. Falls Sie zum ersten Mal mit dem Thema in Berührung kommen, hilft Ihnen dieser Workshop beim Erstellen der notwendigen Schlüssel, die es ermöglichen, die Kommunikation zu chiffrieren und zugleich den Zugriff etwas komfortabler zu gestalten.

Schlüssel erzeugen

Im privaten Netzwerk genügt es in der Regel, beim Erzeugen der Schlüssel mithilfe von Ssh-keygen (Listing 1) die vorgegebenen Werte zu übernehmen. Es lohnt sich aber, sich mit den Unterschieden zwischen den Algorithmen zu beschäftigen: Nach derzeitigem Sachstand gibt es beispielsweise eine klare Empfehlung gegen DSA und gegen kurze Schlüssellängen [4].

Listing 1

 

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/testuser/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is:
SHA256:4FmaVIThgW3VpGTxBeUqIL6UT9pK4OrxVGvUvLfWe5g andreasb@baltic
The key's randomart image is:
+---[RSA 2048]----+
|     oo=B+ooo    |
|    ..+= o.o     |
|    ..= o . .    |
|   . =oB   .     |
|  . +o*oS .      |
| . oo*. ..       |
| ...+oo. .. o    |
| .+...  ...E .   |
|o. ..   .. .o    |
+----[SHA256]-----+

Verwenden Sie unbedingt ein Passwort, um den Schlüssel zu schützen. Wählen Sie es zu kurz, bricht das Programm beim Erstellen allerdings ab: Saving key "id_rsa" failed: passphrase is too short (minimum five characters). Je nach Algorithmus ändert sich der Name des Schlüssels.

Bevor Sie jedoch mit den gerade erstellten Host-Keys arbeiten dürfen, müssen Sie den Public Key, also in der Regel die Datei mit dem Suffix .pub, auf dem entsprechenden Rechner an die Datei .ssh/authorized_keys anhängen. Das erledigen Sie entweder manuell, indem Sie die Datei mittels Secure Copy kopieren und per Cat einfügen, oder Sie nutzen das exakt für diesen Zweck gedachte Tool Ssh-copy-id (Listing 2).

Listing 2

 

$ ssh-copy-id -i .ssh/id_rsa.raspi.pub Host

Die Software untersucht, ob ein Login mittels Schlüssel gelingt. Klappt das nicht, versucht das Tool den Public Key mittels einfachem Login auf dem Rechner zu installieren. Danach klappt dann der Zugriff via Schlüssel. SSH fragt jedoch bei jedem Login weiter das Passwort ab, das Sie für den Schlüssel vergeben haben (siehe Kasten "Abgesichert").

Abgesichert

Haben Sie einen (möglichst passwortgesicherten) Schlüssel auf einem entfernten Rechner installiert, empfiehlt es sich, danach das Login per Benutzerpasswort zu deaktivieren. Dazu editieren Sie auf dem fraglichen Rechner die Konfiguration des SSH-Daemons (/etc/ssh/sshd_config). Hier setzen Sie vier Einträge auf no, um ein Login auf klassische Weise zu unterbinden (Listing 3). Anschließend starten Sie den Dienst neu.

Listing 3

 

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no
PermitRootLogin no

Außerdem müssen Sie auf der Kommandozeile meist eine bis zwei zusätzliche Angaben zum Schlüssel sowie zum User machen. Verwenden Sie pro Host einen eigenen Key, lautet das Kommando beim RasPi etwa so wie jenes in Listing 4. Dieses Beispiel zeigt einen Befehl, der Verbindung zu einem Mini-Rechner aufnimmt, der im lokalen Netzwerk an einer Fritzbox hängt.

Listing 4

 

$ ssh -i ~/.ssh/id_rsa.raspberrypi pi@raspberrypi.fritz.box

Mehr Komfort

Die Secure Shell bietet nun einige Möglichkeiten, um den Einsatz solcher geschützten Schlüssel und zusätzlicher Angaben in der Praxis etwas komfortabler zu gestalten. Allerdings gilt es dabei die richtige Balance zwischen Sicherheit und einfachem Einsatz zu finden.

Im Wesentlichen passen Sie dazu die persönliche Konfigurationsdatei an (Listing 5). Auf diese Weise haben Sie die volle Kontrolle darüber, wie weit Sie die Waage in die jeweilige Richtung kippen. Für den Inhalt gilt: Rauten leiten Kommentare ein, Einrückungen gestalten die Einträge leserlicher.

Listing 5

 

# ~/.ssh/config
Host host1
  User foo
  HostName host1.example.de
  ForwardAgent yes
  ForwardX11 yes
  ForwardX11Trusted yes
  User admin
  IdentityFile ~/.ssh/id_rsa.host1
Host pi
  User pi
  HostName raspberrypi.fritz.box
  ForwardAgent yes
  ForwardX11 yes
  ForwardX11Trusted yes
  IdentityFile ~/.ssh/id_rsa.raspi
Host nas
  User baz
  IdentityFile ~/.ssh/id_rsa.nas
Host *
  ServerAliveInterval 300
  ServerAliveCountMax 3

Die Secure Shell liest die Optionen von der Kommandozeile, wertet die persönliche Konfiguration aus und wendet dann die globale Konfiguration an. Jeder Parameter gilt als gesetzt, wenn er zum ersten Mal verändert wird. Daher stehen in Listing 5 die Host-spezifischen Angaben vor den allgemeinen.

Für die zwei Rechner host1 und raspberrypi kommt die Option ForwardX11 in Kombination mit ForwardX11Trusted zum Einsatz. Damit haben Sie die Möglichkeit, auf dem entfernten System ein Programm mit grafischer Oberfläche zu starten, dessen Ausgabe Sie auf dem lokalen Rechner sehen. Das funktioniert allerdings nur, wenn auf dem lokalen Rechner tatsächlich ein X-Server läuft. Mit der Migration auf Wayland gibt es diese Möglichkeit nicht mehr, denn der moderne X.org-Nachfolger ist nicht mehr netzwerkfähig.

In der Praxis kommt der jeweiligen Zeile IdentityFile eine höhere Bedeutung zu: Damit legen Sie den passenden Schlüssel für den entsprechenden Host fest. Über User und HostName verlagern Sie außerdem weitere Angaben in die Datei, womit sich das Kommando zur Verbindungsaufnahme aus Listing 4 auf ssh pi verkürzt.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

06/2019
Home Improvement

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Verschlungene Pfade

    Mit Schleifen, Fallunterscheidungen und Funktionen programmieren Sie komplexe Skripte auf einfache und elegante Weise.

  • Extrem genau

    Mit einem A/D-Wandler messen Sie bei Bedarf Spannungen. Der MCP3424 macht dabei konstruktionsbedingt eine gute Figur.

  • Verbindungsaufnahme

  • Süßer Wecker

    Dem RasPi fehlen sowohl eine Echtzeituhr als auch ein BIOS, ein zeitgesteuertes Wecken erfordert also Zusatzkomponenten. Hier springt der Witty Pi Mini in die Bresche, ein µHAT von UUGear.

  • Windows to go

    Das Aufsetzen zuverlässiger und sicherer Remote-Desktop-Lösungen erfordert einiges Know-how. Die RasPi-basierte Pinbox von Pintexx reduziert den Konfigurationsaufwand auf ein Minimum.

  • Prima Klima

    In Museen ist es Pflicht, zu Hause nützlich: das permanente Prüfen und zentrale Erfassen der Feuchtigkeit und Temperatur in Räumen.

  • Auf einen Blick

    Ein maßgeschneiderter Infoscreen auf RasPi-Basis mit stromsparendem E-Ink-Display zeigt Termine, Bilder, Mitteilungen und Wetterinformationen an.

  • Sanft berührt

    Mit einem RasPi und dem Controllermodul PiXtend lassen sich mühelos Roboterarme ansteuern und deren Bewegung automatisieren.

  • Popcorn-Kino

    Mit Kodi 18.0 unterstützt LibreELEC 9.0 jetzt die von vielen Streaming-Diensten genutzte DRM-Verschlüsselung. Die Integration von Netflix, Amazon und Co. erfordert allerdings Handarbeit.

  • So nah und doch so fern

    Der RasPi kommt häufig als Server oder Steuerrechner für spezielle Zwecke zum Einsatz. Mit Anydesk erhalten Sie dazu eine Steuersoftware mit grafischer Oberfläche.