SSH-Schlüssel einrichten: Ohne Passwort und trotzdem sicher auf deinen Server
Mit einem SSH-Schlüssel meldest du dich schneller und sicherer an als mit Passwort. Wir zeigen Schritt für Schritt, wie du unter Windows, macOS und Linux einen Schlüssel erzeugst und auf den Server bringst.

Wer einen Raspberry Pi, einen Homeserver oder einen gemieteten Server verwaltet, meldet sich meist per SSH an. Mit Passwort funktioniert das, ist aber umständlich und angreifbar: Bots probieren rund um die Uhr Passwörter an jedem erreichbaren SSH-Server aus. Ein SSH-Schlüssel ist bequemer und deutlich sicherer. In dieser Anleitung erzeugst du einen Schlüssel, kopierst ihn auf den Server und testest die Anmeldung.
Du brauchst: einen Rechner mit Windows 10/11, macOS oder Linux, einen Server mit Linux, auf dem SSH läuft, und dein aktuelles Passwort für diesen Server. Zeitaufwand: etwa 10 Minuten.
So funktioniert ein SSH-Schlüssel
Ein SSH-Schlüssel besteht aus zwei Dateien. Der private Schlüssel bleibt auf deinem Rechner und verlässt ihn nie. Der öffentliche Schlüssel (Endung .pub) kommt auf den Server. Beim Anmelden stellt der Server eine Aufgabe, die nur der passende private Schlüssel lösen kann. Ein Passwort wird dabei nicht übertragen, und es gibt nichts, was ein Angreifer erraten könnte.

Schritt 1: Prüfen, ob SSH installiert ist
Unter macOS und Linux ist der SSH-Client immer dabei. Windows 10 und 11 bringen ihn ebenfalls mit, du nutzt ihn in der PowerShell oder im Windows-Terminal. Öffne ein Terminal und gib ein:
ssh -VEs erscheint eine Versionsnummer wie OpenSSH_9.6. Kommt eine Fehlermeldung, installierst du unter Windows den „OpenSSH-Client“ über Einstellungen → System → Optionale Features.
Schritt 2: Schlüssel erzeugen
Wir nutzen den Typ Ed25519. Er ist modern, schnell und hat kurze Schlüssel. Der Text hinter -C ist nur ein Kommentar, damit du den Schlüssel später auf dem Server wiedererkennst:
ssh-keygen -t ed25519 -C "mein-laptop"Das Programm fragt nach einem Speicherort. Bestätige den Vorschlag mit Enter. Danach fragt es nach einer Passphrase. Wir empfehlen dringend eine: Sie schützt den privaten Schlüssel, falls jemand an deinen Rechner oder dein Backup kommt. Damit du sie nicht ständig tippen musst, gibt es den SSH-Agenten (Schritt 5).
Anschließend liegen zwei neue Dateien im Ordner .ssh in deinem Benutzerverzeichnis: id_ed25519 (privat) und id_ed25519.pub (öffentlich).
Schritt 3: Öffentlichen Schlüssel auf den Server kopieren
Unter macOS und Linux erledigt das ein einziger Befehl. Er fragt einmal nach deinem Server-Passwort:
ssh-copy-id -i ~/.ssh/id_ed25519.pub benutzer@192.168.1.50Unter Windows gibt es ssh-copy-id nicht. Diesen Befehl führst du in der PowerShell aus. Er liest den öffentlichen Schlüssel, meldet sich per Passwort an und hängt ihn an die Datei authorized_keys auf dem Server an:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh benutzer@192.168.1.50 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"Schritt 4: Anmeldung testen
Melde dich jetzt wie gewohnt an:
ssh benutzer@192.168.1.50Statt des Server-Passworts fragt SSH nun nach der Passphrase deines Schlüssels. Wenn das klappt, ist der Schlüssel eingerichtet. Bei der allerersten Verbindung zu einem Server fragt SSH außerdem, ob du dem Fingerabdruck des Servers vertraust. Bestätige mit yes. Wenn diese Warnung später bei einem bekannten Server erneut auftaucht, wurde der Server neu installiert, oder es stimmt etwas nicht.
Schritt 5: Passphrase nur einmal eingeben (SSH-Agent)
Der SSH-Agent merkt sich den entsperrten Schlüssel, solange du angemeldet bist.
macOS: Der Agent läuft automatisch. Mit diesem Befehl landet die Passphrase zusätzlich im Schlüsselbund:
ssh-add --apple-use-keychain ~/.ssh/id_ed25519Linux: Auf den meisten Desktops läuft ebenfalls schon ein Agent. Falls nicht, startest du ihn und fügst den Schlüssel hinzu:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519Windows: Öffne die PowerShell als Administrator und starte den Agenten dauerhaft:
Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agentDanach in einer normalen PowerShell den Schlüssel hinzufügen:
ssh-add $env:USERPROFILE\.ssh\id_ed25519Wenn es nicht klappt
Fragt der Server weiterhin nach dem Passwort, sind fast immer die Dateirechte auf dem Server schuld. SSH ignoriert Schlüssel, wenn andere Benutzer die Dateien ändern könnten. Melde dich mit Passwort an und setze die Rechte:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod go-w ~Hilft das nicht, zeigt dir der ausführliche Modus, welcher Schlüssel angeboten und warum er abgelehnt wird:
ssh -v benutzer@192.168.1.50Wie geht es weiter?
Jetzt, wo die Anmeldung per Schlüssel funktioniert, kannst du die Anmeldung per Passwort auf dem Server komplett abschalten. Wie das geht und wie du den Server zusätzlich mit Firewall und Fail2ban schützt, zeigt die nächste Anleitung: https://spawnpunkt.de/magazin/linux-server-absichern-ssh-ufw-fail2ban
Wenn du dir außerdem lange Befehle wie ssh benutzer@192.168.1.50 sparen willst, hilft die SSH-Config: https://spawnpunkt.de/magazin/ssh-config-aliase-jump-hosts
- Schlüssel mit
ssh-keygen -t ed25519erzeugen und mit Passphrase schützen - Nur den öffentlichen Schlüssel (
.pub) auf den Server kopieren - Mit dem SSH-Agenten gibst du die Passphrase nur einmal pro Sitzung ein
- Funktioniert es nicht, zuerst die Rechte von
~/.sshprüfen undssh -vnutzen - Danach die Anmeldung per Passwort auf dem Server abschalten
Hängst du bei einem Schritt? Stell deine Frage in der Community und häng die Ausgabe von ssh -v an. Lösch vorher IP-Adressen und Benutzernamen daraus, wenn du sie nicht zeigen willst.
- OpenSSH Handbuch: ssh-keygen – man.openbsd.org/ssh-keygen
- Microsoft: Schlüsselbasierte Authentifizierung in OpenSSH für Windows – learn.microsoft.com/de-de/windows-server/administration/open
Kommentare
Noch keine Kommentare. Was meinst du dazu?
Mitreden? Melde dich an, um zu kommentieren.