SSH ohne Passwort – das geht!

„Ist er jetzt völlig wahnsinnig geworden?“ fragen sich sicher einige Leser – nein, ganz im Gegenteil.

Das herkömmliche Passwort hat bei mir schon seit langer Zeit ausgedient und wurde durch das Public Key-Verfahren ersetzt. Was das ist, welche Vorteile es bietet und ob auch Nachteile damit einhergehen möchte ich hier erläutern.

Funktionsweise

SSH unterstützt zusätzlich zur bekannten Authentifizierung via Benutzername und Passwort noch weitere Methoden, sich anzumelden. Die bekannteste Variante ist sicher die Public-Key-Authentifizierung, die ein Schlüsselpaar (Privat-/Public-Key) nutzt, um sich zu authentifizieren.

Der Benutzer authentifiziert sich beim Login per SSH mit seinem privaten Schlüssel, dessen öffentlicher Schlüssel (Public-Key) dem Server bekannt gemacht wurde. Grundvoraussetzung ist also, dass man sich ein Schlüsselpaar angelegt hat und den öffentlichen Schlüssel auf dem Server hinterlegt hat (meist in /root/.ssh/authorized_keys).

Eine detaillierte Übersicht zur Funktionsweise des Mechanismus und ein paar Fakten zum Verfahren haben die Experten von Mittwald in ihrem Blog niedergeschrieben.

Vorteile & praktische Tipps

Die Vorteile des Verfahrens liegen klar auf der Hand, sofern man die Authentifizierung per Passwort verbietet:

  • automatischer Login ohne Benutzerinteraktion (Backups, Cronjobs, Sync-Jobs, …)
  • Brute-Force-Attacken laufen ins Nichts, da es kein zu erratendes Passwort gibt
  • einfacher Login auf mehrere Server, ohne lästige User/Passwort-Kombinationen notieren zu müssen

Zusätzlich kann der Private Key noch mit einem Passwort geschützt werden, wodurch ein Diebstahl des Private Keys nicht allzu schlimm ist.

Als hilfreich bei der Nutzung der Key-Authentifizierung haben sich diese Punkte hervorgehoben:

  • jede Person sollte genau einen Key haben. Anders als oft angenommen, authentifiziert ein Key nicht einen Rechner, sondern eine Person – nicht mehr, nicht weniger. Teilen sich mehrer User also einen Key, ist es nötig, diesen beim Ausscheiden der Person überall zu ändern bzw. erneuern
  • jeder SSH-Key sollte einen Kommentar beinhalten, der z.B. die Mailadresse der dazugehörigen Person enthält

Wer viel mit Git arbeitet – ein Wink an die Entwickler unter euch – wird irgendwann auch zwangsläufig mit SSH-Keys in Verbindung kommen; oder aber für immer sein Passwort eingeben.

Erzeugen eines Schlüsselpaars

Ein Schlüsselpaar kann unter Linux ganz einfach erzeugt werden:

Nun zeigt das Tool an, wo es die Schlüssel gespeichert hat. Die Datei id_rsa ist hierbei der private Schlüssel und darf unter keinen Umständen veröffentlicht werden. Die Datei id_rsa.pub hingegen ist euer öffentlicher Schlüssel, der auf andere Server kopiert werden kann.

Key auf einem Server hinterlegen

Um in Zukunft ein Passwort mehr eingeben zu müssen, ist es nötig, dem Server mitzuteilen, welche Keys er akzeptieren soll. Hierzu gibt es die Datei

im Homeverzeichnis des jeweiligen Users. Dort kann nun einfach der Key eingefügt werden, ein Neustart des SSH-Servers ist nicht notwendig.

Login via Passwort deaktivieren

Nach dem erfolgreichen Test, dass der Login mit dem Schlüsselpaar funktioniert, kann die Passwortanmeldung deaktiviert werden. Hierzu einfach in der Datei /etc/ssh/sshd_config diese Zeile entsprechend abändern

und den SSH-Server neustarten.

oder

1 Gedanke zu “SSH ohne Passwort – das geht!

Schreibe einen Kommentar