⌕
AnmeldenDabei sein ↗

Tippe mindestens zwei Buchstaben. Pfeiltasten wählen, Enter öffnet.

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.

Laptop und Server, dazwischen ein goldener Schlüssel und eine gestrichelte Verbindung, darüber ein Terminalfenster
Illustration: Spawnpunkt

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.

Links ein Laptop mit orangem privatem Schlüssel, rechts ein Server mit Schloss und einer Karte mit der Aufschrift .pub, verbunden durch eine gestrichelte Linie mit Haken
Der private Schlüssel bleibt auf dem Laptop, der öffentliche liegt auf dem Server und passt nur zu diesem einen privaten Schlüssel.

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:

bash
ssh -V

Es 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:

bash
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:

bash
ssh-copy-id -i ~/.ssh/id_ed25519.pub benutzer@192.168.1.50

Unter 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:

powershell
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:

bash
ssh benutzer@192.168.1.50

Statt 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:

bash
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

Linux: Auf den meisten Desktops läuft ebenfalls schon ein Agent. Falls nicht, startest du ihn und fügst den Schlüssel hinzu:

bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Windows: Öffne die PowerShell als Administrator und starte den Agenten dauerhaft:

powershell
Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent

Danach in einer normalen PowerShell den Schlüssel hinzufügen:

powershell
ssh-add $env:USERPROFILE\.ssh\id_ed25519

Wenn 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:

bash
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:

bash
ssh -v benutzer@192.168.1.50

Wie 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

✓ Fazit
  • Schlüssel mit ssh-keygen -t ed25519 erzeugen 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 ~/.ssh prüfen und ssh -v nutzen
  • 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.

Quellen

Kommentare

Noch keine Kommentare. Was meinst du dazu?

Mitreden? Melde dich an, um zu kommentieren.

Frage stellen

Spawnpunkt bindet keine Dienste von Drittanbietern ein. Alles, was du hier erlaubst, bleibt auf meinem eigenen Server.