SSH-Zugang mit Schlüssel statt Passwort einrichten
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.