Modul 2 · 2.1
Deutsch
SSH-Schlüssel erstellen und verwenden
Modul 2: SSH und Schlüssel · Lesezeit: 10 Minuten
Lernziel: Nach dieser Lektion können Sie ein Schlüsselpaar erstellen, den öffentlichen Schlüssel auf Ihren Server legen, sich ohne Passwort anmelden und Ihren privaten Schlüssel so aufbewahren, dass ein verlorener Laptop keine Katastrophe wird.
Kernbegriffe: Schlüsselpaar, öffentlicher Schlüssel, privater Schlüssel, ed25519, RSA, Passphrase, ssh-agent, ssh-copy-id, authorized_keys, Rechte 700 und 600, ein Schlüssel pro Gerät, FIDO2-Schlüssel
Warum Schlüssel besser sind als Passwörter
In Lektion 1.3 haben Sie sich mit einem Passwort angemeldet. Das funktioniert, aber ein Server im Internet bekommt ab der ersten Minute Besuch von Programmen, die Passwörter erraten. Sehen Sie sich einmal das Log eines frischen Servers an:
root@web1:~# journalctl -u ssh --since "1 hour ago" | grep -c "Failed password"
214Hunderte Versuche pro Stunde sind normal. Ein starkes Passwort hält sie auf, aber Sie haben eine Schwachstelle geschaffen, die Sie nicht brauchen. Mit einem SSH-Schlüssel ist Raten sinnlos: Es gibt nichts zu erraten, das in einer Wortliste steht.
Ein Schlüssel besteht aus zwei zusammengehörigen Teilen, einem Schlüsselpaar:
- Der private Schlüssel bleibt auf Ihrem eigenen Computer. Wer diese Datei hat (und die Passphrase kennt), kann sich anmelden. Geben Sie ihn niemandem, auch nicht Ihrem Anbieter oder einem Helpdesk.
- Den öffentlichen Schlüssel geben Sie dem Server. Den darf jeder sehen: Man kann sich damit nicht anmelden, sondern nur prüfen.
Bei der Anmeldung wird kein Passwort über die Leitung geschickt. Ihr Computer beweist mit einer Signatur, dass er den privaten Schlüssel besitzt, und der Server prüft diese Signatur mit dem öffentlichen Schlüssel. Selbst wenn jemand im Netzwerk mitliest, sieht er nichts, was er später wiederverwenden kann.
Einen Schlüssel erstellen
Sie erstellen den Schlüssel auf Ihrem eigenen Computer, nicht auf dem Server. Unter Windows 10 und 11, macOS und Linux ist ssh-keygen bereits enthalten. Öffnen Sie PowerShell oder das Terminal:
anna@laptop:~$ ssh-keygen -t ed25519 -C "anna@laptop 2026"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/anna/.ssh/id_ed25519):
Enter passphrase for "/home/anna/.ssh/id_ed25519" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/anna/.ssh/id_ed25519
Your public key has been saved in /home/anna/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026Was passiert hier?
-t ed25519wählt den Typ. Ed25519 ist kurz, schnell und sicher und seit OpenSSH 9.5 auch der Standardtyp, wenn Sie nichts angeben. Müssen Sie ein altes System bedienen, das ed25519 nicht kennt, nehmen Sie RSA mit mindestens 3072 Bit:ssh-keygen -t rsa -b 4096. Ältere Typen wie DSA wurden aus OpenSSH entfernt; verwenden Sie sie nicht.-Cist nur ein Kommentar. Tragen Sie etwas ein, woran Sie später erkennen, von welchem Gerät der Schlüssel stammt. Das hilft enorm, wenn Sie einen Schlüssel widerrufen müssen.- Die Passphrase verschlüsselt den privaten Schlüssel auf Ihrer Festplatte. Wird Ihr Laptop gestohlen, hat der Dieb eine verschlüsselte Datei. Ohne Passphrase hat er sofort Zugriff auf alle Ihre Server.
Sie haben jetzt zwei Dateien:
| Datei | Was | Weitergeben? |
|---|---|---|
~/.ssh/id_ed25519 | Privater Schlüssel | Niemals |
~/.ssh/id_ed25519.pub | Öffentlicher Schlüssel, eine Zeile Text | Ja, an den Server |
Unter Windows liegen sie in C:\Users\anna\.ssh\. Der öffentliche Schlüssel ist eine Zeile, die mit ssh-ed25519 beginnt:
anna@laptop:~$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHk2... anna@laptop 2026Den öffentlichen Schlüssel auf den Server legen
Der Server sucht öffentliche Schlüssel in der Datei ~/.ssh/authorized_keys des Benutzers, mit dem Sie sich anmelden. Jede Zeile ist ein Schlüssel. Es gibt drei Wege, Ihren Schlüssel dorthin zu bringen:
1. Bei der Installation. Die meisten Anbieter haben beim Anlegen oder Neuinstallieren eines VPS ein Feld für Ihren öffentlichen Schlüssel. Bei WebOké heißt dieses Feld "SSH-Schlüssel" in der VPS-Ansicht; bei anderen Anbietern funktioniert es ähnlich. Das ist der beste Weg: Dann muss nie ein Passwort aktiviert sein.
2. Mit ssh-copy-id (macOS und Linux), solange die Passwortanmeldung noch funktioniert:
anna@laptop:~$ ssh-copy-id anna@192.0.2.10
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed
anna@192.0.2.10's password:
Number of key(s) added: 13. Von Hand, zum Beispiel unter Windows oder über die Konsole Ihres Anbieters. Fügen Sie die Zeile aus Ihrer .pub-Datei in authorized_keys ein und setzen Sie die Rechte richtig:
anna@web1:~$ mkdir -p ~/.ssh
anna@web1:~$ nano ~/.ssh/authorized_keys
anna@web1:~$ chmod 700 ~/.ssh
anna@web1:~$ chmod 600 ~/.ssh/authorized_keysDiese Rechte sind kein Detail. Der SSH-Server prüft sie (die Einstellung StrictModes ist standardmäßig aktiv): Wenn andere in Ihren .ssh-Ordner oder Ihr Home-Verzeichnis schreiben dürfen, ignoriert er Ihre Schlüssel. Sie sehen dann einfach wieder eine Passwortabfrage, ohne eindeutige Fehlermeldung. Wie Sie Rechte lesen, lernen Sie in Lektion 3.1.
Testen Sie danach in einem neuen Fenster:
anna@laptop:~$ ssh anna@192.0.2.10
Enter passphrase for key '/home/anna/.ssh/id_ed25519':
anna@web1:~$Die Abfrage kommt jetzt von Ihrem eigenen Computer (die Passphrase Ihres Schlüssels), nicht mehr vom Server.
ssh-agent: einmal entsperren
Jedes Mal eine Passphrase einzutippen ist mühsam. Der ssh-agent hält Ihren entsperrten Schlüssel im Arbeitsspeicher, solange Sie an Ihrem Computer angemeldet sind:
anna@laptop:~$ ssh-add ~/.ssh/id_ed25519
Enter passphrase for /home/anna/.ssh/id_ed25519:
Identity added: /home/anna/.ssh/id_ed25519 (anna@laptop 2026)
anna@laptop:~$ ssh-add -l
256 SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026 (ED25519)Unter macOS ist der Agent mit dem Schlüsselbund verknüpft, unter Windows ist es der Dienst "OpenSSH Authentication Agent" (einmalig unter Dienste aktivieren). So haben Sie den Komfort ohne Passwort und trotzdem einen verschlüsselten Schlüssel auf der Festplatte.
Vorsicht bei Agent Forwarding (ssh -A): Damit darf der Server, an dem Sie sich anmelden, Ihren Agent verwenden. Wer auf diesem Server root ist, kann dann mit Ihrem Schlüssel weitermachen. Verwenden Sie es nur auf Servern, denen Sie vollständig vertrauen, oder verwenden Sie ProxyJump (Lektion 2.3).
Ein Schlüssel pro Gerät, und wissen, welche wo liegen
Ein häufiger Fehler: einen privaten Schlüssel auf Laptop, PC und Telefon kopieren. Verlieren Sie ein Gerät, müssen Sie den Schlüssel überall ersetzen und alle Geräte neu einrichten. Besser:
- Erstellen Sie auf jedem Gerät einen eigenen Schlüssel mit einem eindeutigen Kommentar (
-C "anna@telefoon"); - tragen Sie alle öffentlichen Schlüssel in
authorized_keysein, einen pro Zeile; - verlieren Sie ein Gerät, entfernen Sie nur diese eine Zeile.
Prüfen Sie regelmäßig, welche Schlüssel Zugang haben:
anna@web1:~$ ssh-keygen -lf ~/.ssh/authorized_keys
256 SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026 (ED25519)
256 SHA256:Zt5oP1yW8eQ3rK6sV0bN9mD2xA4cH7jL1uI5fG8tE3w anna@telefoon (ED25519)Ist ein Schlüssel dabei, den Sie nicht kennen, ist das ein Alarmsignal (Lektion 10.3). Eindringlinge legen gern ihren eigenen Schlüssel in authorized_keys ab, um später wiederzukommen.
Ein Hardware-Schlüssel (FIDO2, etwa ein YubiKey) ist ebenfalls möglich. Mit ssh-keygen -t ed25519-sk liegt der geheime Teil auf dem Schlüssel selbst, und Sie müssen ihn bei jeder Verwendung berühren. Eine gestohlene Datei ist dann wertlos. Das ist ein schöner nächster Schritt, für den Anfang aber nicht nötig.
Privaten Schlüssel verloren?
Verlieren Sie Ihren einzigen privaten Schlüssel und ist die Passwortanmeldung deaktiviert, kommen Sie per SSH nicht mehr hinein. Deshalb:
- Legen Sie immer mindestens zwei Schlüssel auf den Server (zum Beispiel Laptop und PC);
- wissen Sie, wie die Konsole Ihres Anbieters funktioniert (Lektion 1.2). Dort melden Sie sich an, als hätten Sie eine Tastatur direkt am Server, und das funktioniert auch ohne SSH. Bei WebOké heißt das Konsole in der VPS-Ansicht; andere Anbieter nennen es VNC-Konsole, Webkonsole oder Notfallkonsole.
Unter AlmaLinux und Rocky Linux
Alles in dieser Lektion funktioniert genauso. Eine zusätzliche Falle: Mit aktivem SELinux muss ~/.ssh das richtige Sicherheitslabel haben. Haben Sie den Ordner von Hand angelegt oder kopiert und wird Ihr Schlüssel ignoriert, behebt restorecon -Rv ~/.ssh das.
Zusammenfassung
- Ein Schlüsselpaar besteht aus einem privaten Schlüssel (bleibt bei Ihnen) und einem öffentlichen Schlüssel (kommt auf den Server, in
~/.ssh/authorized_keys). - Erstellen Sie Schlüssel mit
ssh-keygen -t ed25519auf Ihrem eigenen Computer, mit einer Passphrase; verwenden Sie ssh-agent für den Komfort. - Rechte zählen:
~/.sshauf 700 undauthorized_keysauf 600, sonst ignoriert der Server Ihren Schlüssel. - Ein Schlüssel pro Gerät, mit eindeutigem Kommentar, damit Sie einen einzelnen widerrufen können.
- Sorgen Sie für einen zweiten Schlüssel und kennen Sie die Konsole Ihres Anbieters als Notzugang.
Quiz
Aufgabe
Aufgabe O2.1: Einen Schlüssel erstellen und verwenden. Erstellen Sie auf Ihrem eigenen Computer einen ed25519-Schlüssel mit einer Passphrase und einem eindeutigen Kommentar, legen Sie ihn auf Ihren Server (über das Feld Ihres Anbieters, ssh-copy-id oder von Hand), prüfen Sie die Rechte und melden Sie sich in einem neuen Fenster mit dem Schlüssel an. Tragen Sie danach den Fingerabdruck Ihres Schlüssels ein (aus ssh-keygen -lf ~/.ssh/id_ed25519.pub) und beantworten Sie die Fragen dazu, wo Ihr privater Schlüssel liegt und was Sie tun, wenn Sie ihn verlieren. Das Programm prüft nur, ob der Fingerabdruck das richtige Format hat; den Rest erledigen Sie selbst.
Aufgabe O2.1: Einen Schlüssel erstellen und verwenden
Diese Aufgabe machen Sie selbst; niemand prüft sie nach. Haken Sie ab, was Sie erledigt haben, und markieren Sie die Aufgabe als erledigt.
Der private Schlüssel bleibt auf Ihrem eigenen Gerät, verschlüsselt mit einer Passphrase, nicht in einem Cloud-Ordner oder einer E-Mail. Bei Diebstahl entfernen Sie die Zeile dieses Geräts aus authorized_keys auf jedem Server und erstellen einen neuen Schlüssel. Fügen Sie Ihren privaten Schlüssel nie ein, auch nicht hier.
Ihre Haken und Notizen bleiben nur in diesem Browser; wir senden sie nirgendwohin. Sind Sie angemeldet, speichern wir in Meine Kurse nur, dass Sie die Aufgabe erledigt haben.
Weiterführende Informationen
Die Schritte in diesen Artikeln gelten für die VPS-Ansicht und die Panels von WebOké; bei anderen Anbietern funktioniert es ähnlich.
- Per SSH auf Ihrem VPS anmelden (und einen SSH-Schlüssel erstellen)
- DirectAdmin Anleitung 15.2: SSH-Schlüssel und Anmelden mit SSH
- Kein Zugriff mehr auf Ihren VPS: Was nun?
- Handbuch zu ssh-keygen: https://man.openbsd.org/ssh-keygen
- Release Notes zu OpenSSH 9.5 (ed25519 als Standard): https://www.openssh.org/txt/release-9.5
