Skip to main content

SSH-Zugang mit Schlüssel statt Passwort einrichten

9. January 2015

Ein SSH-Zugang mit Schlüsselpaar ist sicherer und bequemer als ein Passwort: Der private Schlüssel verlässt Ihren Rechner nie, und Angriffe durch systematisches Durchprobieren laufen ins Leere. Die Einrichtung dauert wenige Minuten.

Überarbeitete Fassung eines Beitrags von 2015. Die Empfehlung für den Schlüsseltyp hat sich seither geändert.

Schlüsselpaar erzeugen

Aktuell empfohlen ist Ed25519 — kürzer, schneller und sicherer als das früher übliche RSA:

ssh-keygen -t ed25519 -C "vorname@rechnername"

Vergeben Sie unbedingt eine Passphrase. Sie schützt den privaten Schlüssel, falls Ihr Rechner abhandenkommt. Unter macOS und Linux entstehen zwei Dateien in ~/.ssh: id_ed25519 ist der private Schlüssel und bleibt bei Ihnen, id_ed25519.pub ist der öffentliche und darf weitergegeben werden.

Öffentlichen Schlüssel auf den Server bringen

ssh-copy-id -i ~/.ssh/id_ed25519.pub benutzer@server.de

Steht ssh-copy-id nicht zur Verfügung, hängen Sie den Inhalt der .pub-Datei manuell an ~/.ssh/authorized_keys auf dem Server an. Wichtig sind dabei die Rechte: 700 für das Verzeichnis .ssh, 600 für die Datei. Sind sie zu weit gefasst, verweigert der SSH-Dienst den Schlüssel kommentarlos.

Passphrase im Schlüsselbund ablegen

Damit Sie die Passphrase nicht bei jeder Verbindung eintippen, legen Sie unter macOS eine ~/.ssh/config an:

Host server
  HostName server.de
  User benutzer
  Port 22
  IdentityFile ~/.ssh/id_ed25519
  AddKeysToAgent yes
  UseKeychain yes

Danach genügt ssh server. Der Eintrag UseKeychain ist macOS-spezifisch; unter Linux lassen Sie ihn weg.

Passwort-Anmeldung abschalten

Der eigentliche Sicherheitsgewinn entsteht erst, wenn die Passwort-Anmeldung deaktiviert ist. In /etc/ssh/sshd_config:

PasswordAuthentication no
PermitRootLogin prohibit-password

Bevor Sie den Dienst neu starten: Öffnen Sie eine zweite Sitzung und prüfen Sie darin, ob die Anmeldung mit Schlüssel funktioniert. Wer sich hier aussperrt, braucht Konsolenzugang über den Anbieter.

Was mit dem Standardport ist

Den SSH-Port von 22 auf einen anderen zu legen, verringert die Zahl der automatisierten Anmeldeversuche im Protokoll. Ein Sicherheitsgewinn ist es nicht — ein Portscan findet den Dienst in Sekunden. Sinnvoller sind eine Sperre nach mehreren Fehlversuchen und eine Beschränkung auf bekannte Adressbereiche.

Schlüssel gehören verwaltet

Legen Sie je Rechner ein eigenes Schlüsselpaar an, nicht ein gemeinsames für alle Geräte. Geht ein Gerät verloren, entfernen Sie genau dessen öffentlichen Schlüssel aus authorized_keys — ohne alle anderen Zugänge neu einrichten zu müssen.

Auf den Servern, die wir betreuen, ist die Passwort-Anmeldung grundsätzlich abgeschaltet. Mehr dazu unter Managed Hosting.

Weiterlesen oder fragen

Passt das auf Ihren Fall?

Wenn Sie vor einem ähnlichen Problem stehen und nicht weiterkommen: Schreiben Sie uns kurz, worum es geht.

Secret Link