SSH-Keys sind die sicherste Methode zur Server-Authentifizierung. Kein Passwort kann erraten werden, und die Anmeldung ist sogar bequemer. In dieser Anleitung richten wir SSH-Key-Authentifizierung ein.
Warum SSH-Keys?
| Aspekt | Passwort | SSH-Key | |--------|----------|---------| | Sicherheit | Kann erraten werden | Praktisch unknackbar | | Brute-Force | Anfällig | Immun | | Bequemlichkeit | Jedes Mal eingeben | Einmal einrichten | | Automatisierung | Schwierig | Ideal für Skripte |
Funktionsweise
SSH-Keys arbeiten mit asymmetrischer Verschlüsselung:
1. Private Key: Bleibt auf Ihrem Computer (niemals teilen!) 2. Public Key: Wird auf dem Server hinterlegt
Der Server kann mit dem Public Key prüfen, ob Sie den passenden Private Key besitzen - ohne dass der Private Key übertragen wird.
SSH-Key erstellen
Auf Ihrem lokalen Computer
ssh-keygen -t ed25519 -C "ihr@email.de"Oder mit RSA (ältere Kompatibilität):
ssh-keygen -t rsa -b 4096 -C "ihr@email.de"Sie werden gefragt: 1. Speicherort: Enter für Standard (~/.ssh/id_ed25519) 2. Passphrase: Optionales Passwort für zusätzliche Sicherheit
Ergebnis
Zwei Dateien werden erstellt:
~/.ssh/id_ed25519- Private Key (GEHEIM!)~/.ssh/id_ed25519.pub- Public Key (kann geteilt werden)
Public Key auf Server kopieren
Methode 1: ssh-copy-id (empfohlen)
ssh-copy-id user@serverSie werden ein letztes Mal nach dem Passwort gefragt.
Methode 2: Manuell
Public Key anzeigen:
cat ~/.ssh/id_ed25519.pubAuf dem Server:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
# Public Key einfügen
chmod 600 ~/.ssh/authorized_keysMethode 3: Per Pipe
cat ~/.ssh/id_ed25519.pub | ssh user@server "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"Testen
ssh user@serverSie sollten jetzt ohne Passwort angemeldet werden (oder nur mit der Key-Passphrase).
Passwort-Authentifizierung deaktivieren
Wichtig: Erst testen, ob der Key funktioniert!
Auf dem Server /etc/ssh/sshd_config bearbeiten:
PasswordAuthentication no
PubkeyAuthentication yesSSH-Dienst neu laden:
systemctl reload sshdMehrere Keys verwalten
Verschiedene Keys für verschiedene Server
ssh-keygen -t ed25519 -f ~/.ssh/id_work -C "work"
ssh-keygen -t ed25519 -f ~/.ssh/id_personal -C "personal"SSH-Config für einfache Verwaltung
Erstellen Sie ~/.ssh/config:
Host server1
HostName 192.168.1.100
User root
IdentityFile ~/.ssh/id_ed25519
Host arbeit
HostName work.example.com
User admin
IdentityFile ~/.ssh/id_work
Port 2222
Host github.com
IdentityFile ~/.ssh/id_githubDann einfach:
ssh server1
ssh arbeitSSH-Agent (Passphrase cachen)
Wenn Ihr Key eine Passphrase hat, können Sie diese cachen:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519Die Passphrase wird bis zum Logout gecacht.
Automatisch beim Login starten
In ~/.bashrc oder ~/.zshrc:
if [ -z "$SSH_AUTH_SOCK" ]; then
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
fiWindows: SSH-Keys mit PuTTY
Key erstellen mit PuTTYgen
1. PuTTYgen starten 2. "Generate" klicken und Maus bewegen 3. Passphrase eingeben (optional) 4. "Save private key" (.ppk-Datei) 5. Public Key aus dem Textfeld kopieren
Key in PuTTY verwenden
1. PuTTY öffnen 2. Connection → SSH → Auth → Credentials 3. "Private key file for authentication" → .ppk-Datei auswählen 4. Session speichern
Bestehenden Key zu Server hinzufügen
Wenn Sie mehrere Computer haben:
# Auf dem neuen Computer: Public Key anzeigen
cat ~/.ssh/id_ed25519.pub
# Auf dem Server: Zum authorized_keys hinzufügen
echo "ssh-ed25519 AAAAC3... user@host" >> ~/.ssh/authorized_keysSicherheits-Best-Practices
1. Private Key schützen: Niemals teilen, chmod 600 2. Passphrase verwenden: Zusätzlicher Schutz bei Diebstahl 3. Ein Key pro Gerät: Einfacher zu widerrufen 4. Regelmäßig rotieren: Alte Keys entfernen 5. Ed25519 bevorzugen: Moderner und sicherer als RSA
Key widerrufen
Auf dem Server die Zeile aus ~/.ssh/authorized_keys entfernen:
nano ~/.ssh/authorized_keys
# Zeile mit dem alten Key löschenTroubleshooting
"Permission denied (publickey)"
1. Key auf Server vorhanden? cat ~/.ssh/authorized_keys 2. Berechtigungen? chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys 3. Richtiger Key? ssh -v user@server für Debug-Ausgabe
Agent hat Key nicht
ssh-add -l # Geladene Keys anzeigen
ssh-add ~/.ssh/id_ed25519 # Key hinzufügenFalscher Key wird verwendet
ssh -i ~/.ssh/richtiger_key user@serverOder in ~/.ssh/config den IdentityFile festlegen.
Fazit
SSH-Keys sind sicherer und bequemer als Passwörter. Die Einrichtung dauert 5 Minuten und Sie müssen sich nie wieder ein Server-Passwort merken. Deaktivieren Sie nach der Einrichtung unbedingt die Passwort-Authentifizierung auf dem Server.