SSH-Schlüssel statt Passwort: So geht's – Sicherer einloggen ohne Passwort
Back
Jeden Tag loggen sich Admins per SSH auf ihre Server ein – und die meisten verwenden immer noch ein Passwort. Das ist bequem, aber auch gefährlich. Passwörter können geknackt, erraten oder abgefangen werden. Ein einziger schwacher Passwort-Schutz genügt, und euer ganzer Server ist kompromittiert .
Die gute Nachricht: Es gibt eine deutlich sicherere Methode – die SSH-Schlüssel-Authentifizierung. Sie ist nicht nur sicherer, sondern nach der Einrichtung sogar bequemer, weil ihr euch ohne Passwort einloggen könnt.
In diesem Guide zeigen wir euch Schritt für Schritt, wie ihr SSH-Schlüssel erstellt, auf eurem Server installiert und damit sicher und passwortfrei einloggt.
🔐 Was sind SSH-Schlüssel und warum sind sie sicherer?
SSH-Schlüssel sind ein kryptografisches Verfahren, das auf zwei zusammengehörenden Schlüsseln basiert:
-
Privater Schlüssel: Bleibt auf eurem lokalen Rechner und darf niemals weitergegeben werden. Denkt daran wie an euren Hausschlüssel – den behaltet ihr auch nur selbst.
-
Öffentlicher Schlüssel: Kommt auf den Server. Er kann mit eurem privaten Schlüssel Daten entschlüsseln, die nur für euch bestimmt sind.
Vorteile der Schlüssel-Authentifizierung:
| Aspekt | Passwort | SSH-Schlüssel |
|---|---|---|
| Sicherheit | Anfällig für Brute-Force-Angriffe | Praktisch nicht zu knacken (2048/4096 Bit) |
| Bequemlichkeit | Muss jedes Mal eingegeben werden | Einmal eingerichtet, dann automatisch |
| Automatisierung | Nicht für Skripte geeignet | Perfekt für automatisierte Prozesse |
| Phishing-Schutz | Kann abgefischt werden | Schlüssel kann nicht einfach abgegriffen werden |
Ein SSH-Schlüssel mit 2048 Bit Länge ist milliardenfach sicherer als jedes noch so komplexe Passwort .
🖥️ Schritt 1: SSH-Schlüsselpaar erstellen
Auf Linux/macOS:
Öffnet ein Terminal und gebt folgenden Befehl ein:
bash
ssh-keygen -t rsa -b 4096 -C "deine-email@beispiel.de"
Erklärung der Parameter:
-
-t rsa: Verschlüsselungsalgorithmus (RSA ist der Standard) -
-b 4096: Schlüssellänge in Bit (4096 ist sehr sicher) -
-C: Ein Kommentar (meist die E-Mail-Adresse, um den Schlüssel später zu identifizieren)
Ihr werdet gefragt, wo der Schlüssel gespeichert werden soll. Drückt einfach Enter, um den Standardpfad zu übernehmen (~/.ssh/id_rsa).
Dann werdet ihr nach einer Passphrase gefragt. Das ist wie ein zusätzliches Passwort für euren privaten Schlüssel. Es ist optional, aber empfohlen:
-
Ohne Passphrase: Ihr könnt euch ohne weitere Eingabe einloggen (sehr bequem, aber wenn jemand euren privaten Schlüssel stiehlt, hat er sofort Zugriff).
-
Mit Passphrase: Ihr müsst die Passphrase bei jeder Nutzung des Schlüssels eingeben (sicherer, aber weniger bequem).
Unser Tipp: Verwendet eine Passphrase – sie ist ein zusätzlicher Schutzschild für euren privaten Schlüssel.
Auf Windows (mit PowerShell):
Windows 10 und 11 haben OpenSSH integriert. Öffnet PowerShell und gebt denselben Befehl ein:
powershell
ssh-keygen -t rsa -b 4096 -C "deine-email@beispiel.de"
Die Schlüssel werden standardmäßig in C:\Users\DeinName\.ssh\ gespeichert.
Nach der Erstellung habt ihr zwei Dateien:
-
id_rsa– euer privater Schlüssel (bleibt bei euch!) -
id_rsa.pub– euer öffentlicher Schlüssel (kommt auf den Server)
📤 Schritt 2: Öffentlichen Schlüssel auf den Server kopieren
Es gibt mehrere Wege, den öffentlichen Schlüssel auf euren Server zu übertragen. Hier sind die drei einfachsten:
Methode 1: ssh-copy-id (einfachste Methode auf Linux/macOS)
bash
ssh-copy-id benutzer@server-ip.de
Gebt einmalig euer Passwort ein – danach kopiert ssh-copy-id automatisch euren öffentlichen Schlüssel an die richtige Stelle (~/.ssh/authorized_keys auf dem Server).
Methode 2: Manuell per SSH und Befehle
Wenn ssh-copy-id nicht verfügbar ist (z.B. auf Windows), könnt ihr den Schlüssel manuell kopieren:
bash
# Inhalt des öffentlichen Schlüssels anzeigen cat ~/.ssh/id_rsa.pub # Oder auf Windows: type C:\Users\DeinName\.ssh\id_rsa.pub
Dann loggt ihr euch auf dem Server ein und fügt den Schlüssel zur Datei authorized_keys hinzu:
bash
# Auf dem Server: mkdir -p ~/.ssh echo "hier-den-kompletten-öffentlichen-schlüssel-einfügen" >> ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
Methode 3: Per SCP (für Fortgeschrittene)
bash
scp ~/.ssh/id_rsa.pub benutzer@server-ip.de:~/ ssh benutzer@server-ip.de mkdir -p ~/.ssh cat ~/id_rsa.pub >> ~/.ssh/authorized_keys rm ~/id_rsa.pub chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
🔑 Schritt 3: Einloggen ohne Passwort testen
Jetzt kommt der Moment der Wahrheit. Versucht, euch per SSH einzuloggen:
bash
ssh benutzer@server-ip.de
Wenn alles funktioniert hat, werdet ihr nicht nach einem Passwort gefragt – ihr seid sofort eingeloggt. Falls doch nach einem Passwort gefragt wird, geht zu Schritt 4 (Fehlersuche).
🔒 Schritt 4 (Optional): Passwort-Authentifizierung deaktivieren
Wenn die Schlüssel-Authentifizierung funktioniert, könnt ihr die unsichere Passwort-Authentifizierung komplett deaktivieren. Das macht euren Server noch sicherer.
Achtung: Bevor ihr das tut, stellt sicher, dass die Schlüssel-Authentifizierung zuverlässig funktioniert! Testet sie in einer zweiten Terminalsitzung, bevor ihr die Passwörter abschaltet. Sonst schließt ihr euch selbst aus!
Editiert die SSH-Konfigurationsdatei:
bash
sudo nano /etc/ssh/sshd_config
Sucht folgende Zeilen und ändert sie (oder fügt sie hinzu):
bash
# Deaktiviert Passwort-Login PasswordAuthentication no ChallengeResponseAuthentication no # Aktiviert Schlüssel-Login (sollte schon "yes" sein) PubkeyAuthentication yes # Deaktiviert Root-Login mit Passwort (optional, aber empfohlen) PermitRootLogin prohibit-password
Speichert die Datei und startet den SSH-Dienst neu:
bash
sudo systemctl restart sshd # oder sudo service ssh restart
Jetzt können sich nur noch Benutzer mit gültigem SSH-Schlüssel einloggen – Passwörter werden nicht mehr akzeptiert.
🐛 Schritt 5: Fehlersuche (wenn's nicht klappt)
Problem: "Permission denied" beim Einloggen
Lösung 1: Prüft die Berechtigungen auf dem Server:
bash
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
Lösung 2: Stellt sicher, dass die authorized_keys wirklich euren Schlüssel enthält:
bash
cat ~/.ssh/authorized_keys
Lösung 3: Schaut in die SSH-Logs, um den Fehler zu finden:
bash
sudo tail -f /var/log/auth.log # oder sudo journalctl -u ssh -f
Mehr zum Lesen von Logs findet ihr in unserem Guide Server-Logs verstehen .
Problem: "Bad permissions" auf dem privaten Schlüssel (lokal)
Euer privater Schlüssel auf dem lokalen Rechner darf nur von euch lesbar sein:
bash
chmod 600 ~/.ssh/id_rsa
🚀 Fortgeschrittene Tipps
Mehrere Schlüssel verwalten
Für verschiedene Server oder Zwecke könnt ihr mehrere Schlüsselpaare erstellen:
bash
ssh-keygen -t rsa -b 4096 -f ~/.ssh/server1 -C "server1@beispiel.de" ssh-keygen -t rsa -b 4096 -f ~/.ssh/server2 -C "server2@beispiel.de"
Dann erstellt oder editiert ihr die Datei ~/.ssh/config:
bash
Host server1
HostName server1.beispiel.de
User meinbenutzer
IdentityFile ~/.ssh/server1
Host server2
HostName 192.168.1.100
User admin
IdentityFile ~/.ssh/server2
Jetzt reicht ssh server1 oder ssh server2 – der Rest wird automatisch erledigt.
SSH-Agent für Passphrase-Nutzer
Wenn ihr eine Passphrase auf eurem privaten Schlüssel habt, müsst ihr sie normalerweise einmal pro Session eingeben. Mit dem SSH-Agent könnt ihr das automatisieren:
bash
# Agent starten eval "$(ssh-agent -s)" # Schlüssel hinzufügen (nach Passphrase fragen) ssh-add ~/.ssh/id_rsa
Nach dem Hinzufügen müsst ihr die Passphrase nicht mehr erneut eingeben, solange der Agent läuft.
Schlüssel auf neuen Server kopieren (mit mehreren Schlüsseln)
bash
ssh-copy-id -i ~/.ssh/server1.pub benutzer@server-ip.de
📊 Zusammenfassung: SSH-Schlüssel in 5 Minuten
-
Schlüsselpaar erstellen:
ssh-keygen -t rsa -b 4096 -
Öffentlichen Schlüssel auf Server kopieren:
ssh-copy-id benutzer@server-ip.de -
Einloggen testen:
ssh benutzer@server-ip.de -
(Optional) Passwort-Login deaktivieren: In
/etc/ssh/sshd_configPasswordAuthentication nosetzen und SSH neustarten -
Feiern! 🎉
🏁 Fazit: Sicherheit und Komfort in einem
SSH-Schlüssel sind der Goldstandard für die Server-Anmeldung. Sie sind:
✅ Sicherer als jedes Passwort
✅ Bequemer nach der Einrichtung
✅ Automatisierbar für Skripte und Cronjobs
✅ Kostenlos und einfach einzurichten
Nach der einmaligen Einrichtung werdet ihr nicht mehr auf Passwörter zurückgreifen wollen. Stellt euch vor, ihr loggt euch mehrmals täglich auf verschiedene Server ein – ohne ein einziges Passwort tippen zu müssen. Genau das ermöglichen SSH-Schlüssel.
Bei NexoraHost empfehlen wir allen Kunden, von Passwörtern auf SSH-Schlüssel umzusteigen. Es ist der einfachste Weg, euren Server signifikant sicherer zu machen.
👉 Jetzt den passenden Server für eure Projekte finden 👈
PS: Ihr habt Fragen oder Probleme bei der Einrichtung?
Dann schreibt uns einfach! Unser Support hilft euch gerne – ob bei der Schlüsselerstellung, den richtigen Berechtigungen oder der Fehlersuche. Bei NexoraHost seid ihr nicht nur Kunde, sondern Teil der Familie!
More blog articles
Du suchst nach einem neuen Server oder Webhosting und wirst von günstigen Lockangeboten überschüttet? Vorsicht – was auf den ersten Blick wie ein Schnäppchen aussieht, kann langfristig zu einer teuren Überraschung werden. Wir zeigen d...
Was ist eigentlich... Webspace? Einfach erklärt (nicht nur für Oma!) Hast du schon mal von Webspace gehört und gedacht: "Was soll das sein?" Keine Sorge, du bist nicht allein. Viele Leute wissen nicht, was das ist - dabei nutzen sie es jeden Tag....
Du hast bereits erste Erfahrungen mit Minecraft Servern gesammelt und möchtest jetzt deinen eigenen, professionellen Server aufsetzen? Egal ob du mit Mods, Plugins oder im klassischen Vanilla-Stil spielen willst – dieser Guide führt dich durch die wichtigsten...