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

  1. Schlüsselpaar erstellen: ssh-keygen -t rsa -b 4096

  2. Öffentlichen Schlüssel auf Server kopieren: ssh-copy-id benutzer@server-ip.de

  3. Einloggen testen: ssh benutzer@server-ip.de

  4. (Optional) Passwort-Login deaktivieren: In /etc/ssh/sshd_config PasswordAuthentication no setzen und SSH neustarten

  5. 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...