Raspberry Pi – SSH Zugriff einschränken – Teil 3

| 20. Januar 2014 | 1 Kommentar

Im letzten Teil haben wir mit denyhosts Hacker daran gehindert unser Benutzerpasswort durch simples probieren zu erraten. Damit ist nun fast nicht mehr möglich ins System über SSH einzubrechen. Was passiert aber, wenn der Hacker aus einer anderen Quelle bereits unser Passwort besitzt? Stehen ihm dann alle Türen offen? Ich zeige euch im letzten Schritt die vermutlich sicherste Art, um unerlaubten Zugriff zu verhindern.

ssh-keys

Authentifizerung mit Schlüsseln

Die Authentifizierung an Systemen mit Benutzername und Passwort hat sich etabliert, weil es für Benutzer einfach ist. Leider ist diese Art der Sicherheitskontrolle aufgrund der in den beiden vorigen Teilen meiner Artikelserie genannten Risiken nicht sicher genug. Sobald man also ein wirklich sicheres System betreiben will bleibt einem keine andere Wahl. Man muss die Authentifizierungsmethode ändern.

Funktionsweise

Bei der Authentifizierung mit Schlüsseln erstellt jeder Benutzer der mit dem System arbeiten will lokal auf seinem System ein Schlüsselpaar:

  • privater Schlüssel
    dieser Schlüssel bleibt lokal auf dem System liegen und darf nicht weitergegeben werden!
  • öffentlicher Schlüssel
    den öffentlichen Schlüssel kann man an alle Systeme weitergeben, an die man sich mit diesem Schlüsselpaar authentifizieren.

Schlüssel erstellen

Mit folgendem Kommando kann man sich auf seinem lokalen System ein Schlüsselpaar erstellen:

startet nun eine kurze interaktive Abfrage in der man zuerst den Speicherplatz des Keys eingeben kann (oder den Standardpfad bestätigt) und optional ein Passwort eingeben kann.
ssh-keygen
Ein Passwort ist immer eine gute Idee. Beim Anmelden über SSH mit Schlüsseln wird dann dieses abgefragt und nicht das vom Benutzer. Gibt man keines an, so kann man sich vom lokalen Computer ohne Passworteingabe anmelden. Wie in der Ausgabe zu lesen ist wurde im Benutzerordner unter .ssh (versteckter Ordner!) ein öffentlicher Schlüssel mit der Dateiendung *.pub erstellt. Diese kopieren wir nun auf den Raspberry Pi:

Scp funktioniert wie cp und kopiert eine Datei. Als Ziel geben wir hier den Benutzer, die IP Adresse und nach dem Doppelpunkt einen Dateinamen an. Nun liegt unser öffentliche Schlüssel im home Ordner vom Benutzer pi im Dateinamen key.

Konfiguration

Der letzte Schritt ist nun, dass wir am Raspberry Pi den Schlüssel in den richtigen Ordner kopieren und die Datei korrekt benennen. Wir melden uns also zB: über SSH am Raspberry Pi an und kopieren den Inhalt der Datei key in die korrekte Datei:

Von nun an kann man sich vom Client Rechner mit Schlüsseln über SSH Authentifizieren. Achtung: es wird nun nicht mehr das Passwort vom Benutzer pi abgefragt, sondern jenes, dass bei der Schlüsselerstellung eingegeben wurde (oder gar keines).

Passwort Authentifizierung deaktivieren

Wenn man sich mit den Schlüsseln anmelden kann und soweit alles funktioniert ist es an der Zeit, die Passwort Authentifizierung, also das Anmelden über SSH mit dem Benutzer pi und seinem Passwort zu deaktivieren. Dazu muss man lediglich 2 Zeilen in /etc/ssh/sshd_config ändern:

Hat man diese 2 Werte geändert muss man nur noch speichern und neu starten. Achtung! Nach dem Neustart kann man sich nur mehr über die Schlüssel anmelden. Sollte man diesen verlieren, hat man sich aus dem System ausgesperrt. Ohne Schlüssel kommt man also nicht mehr ins System. Es schadet also nicht unbedingt ein Backup seiner Schlüssel zu erstellen.

Tags: ,

Kategorie: Administration, Hardware, Raspberry Pi

Kommentare (1)

Trackback URL | Kommentare vom RSS Feed

  1. Caco sagt:

    Netter Artikel, aber den public Key zu kopieren und an die authorized_keys Datei anzuhägen geht mit ssh-copy-id wesetlich bequemer: https://wiki.debian.org/SSH#Using_shared_keys

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *