Warum SSH-Schlüssel statt Passwörter?
SSH (Secure Shell) ist das Standard-Protokoll für sichere Server-Verbindungen. Standardmäßig authentifizieren sich Benutzer mit Benutzername und Passwort. Das hat Nachteile:
- Passwörter können durch Brute-Force-Angriffe geraten werden
- Passwörter können durch Phishing oder Keylogger gestohlen werden
- Schwache Passwörter sind ein kritisches Sicherheitsrisiko
SSH-Schlüssel bieten deutlich mehr Sicherheit:
- Mathematisch unmöglich zu "erraten" (4096-Bit RSA oder Ed25519)
- Privater Schlüssel verlässt nie Ihren Computer
- Optionale Passphrase als zweite Schutzschicht
- Kein Passwort im Netzwerk übertragen
Für IT-Admins in Heidelberg und der Rhein-Neckar-Region, die Server remote verwalten, ist SSH-Key-Auth Pflicht.
SSH-Schlüsselpaar generieren
Auf Linux/Mac
Öffnen Sie ein Terminal und führen Sie aus:
Ed25519 (empfohlen – moderner, schneller, sicherer):ssh-keygen -t ed25519 -C "[email protected]"
RSA 4096 (falls Kompatibilität mit älteren Systemen nötig):ssh-keygen -t rsa -b 4096 -C "[email protected]"
Der Assistent fragt:
- Speicherort: Standard
~/.ssh/id_ed25519(Enter für Standard) - Passphrase: Empfohlen! Schützt den privaten Schlüssel wenn er gestohlen wird.
Ergebnis: Zwei Dateien werden erstellt:
~/.ssh/id_ed25519→ Privater Schlüssel (NIEMALS teilen!)~/.ssh/id_ed25519.pub→ Öffentlicher Schlüssel (wird auf Server kopiert)
Auf Windows 10/11
Windows 10/11 enthält einen eingebauten SSH-Client. In PowerShell:
ssh-keygen -t ed25519 -C "[email protected]"
Schlüssel werden gespeichert in C:\Users\IhrName\.ssh\
Für Windows: PuTTYgen (alternative Methode)
- PuTTY von putty.org herunterladen
- PuTTYgen starten
- EdDSA oder RSA auswählen, 4096 Bits
- Generate klicken
- Save private key (als .ppk) und Public Key kopieren
Öffentlichen Schlüssel auf Server kopieren
Methode 1: ssh-copy-id (einfachste Methode, Linux/Mac)
ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]
Der Befehl kopiert den Public Key automatisch in ~/.ssh/authorized_keys auf dem Server.
Methode 2: Manuell
- Public Key anzeigen:
cat ~/.ssh/id_ed25519.pub
Ausgabe sieht so aus:ssh-ed25519 AAAA...langer_schlüssel... [email protected]
Auf dem Server einloggen (noch mit Passwort):
ssh [email protected]Auf dem Server: Schlüssel zur authorized_keys-Datei hinzufügen:
mkdir -p ~/.ssh && chmod 700 ~/.ssh echo "ssh-ed25519 AAAA...ihr_schlüssel..." >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
Methode 3: Von Windows (PowerShell)
$pubkey = Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub" ssh [email protected] "mkdir -p ~/.ssh && echo '$pubkey' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
SSH-Verbindung testen
Nach dem Kopieren des Public Keys:
ssh -i ~/.ssh/id_ed25519 [email protected]
Wenn erfolgreich → kein Passwort mehr nötig (nur ggf. Passphrase für den Schlüssel).
SSH-Server absichern (sshd_config)
Bearbeiten Sie die SSH-Server-Konfiguration auf dem Server:
nano /etc/ssh/sshd_config
Wichtige Sicherheitseinstellungen
`# Port ändern (versteckt vor automatischen Scannern, kein echter Schutz)
Port 2222
Root-Login verbieten (Pflicht!)
PermitRootLogin no
Nur Schlüssel-Auth erlauben (Passwort-Login deaktivieren – nach Schlüssel-Einrichtung!)
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Login-Zeitlimit
LoginGraceTime 30
Leere Passwörter verbieten
PermitEmptyPasswords no
Nur bestimmte Benutzer erlauben
AllowUsers admin backupuser
Max. Versuche pro Verbindung
MaxAuthTries 3`
Nach Änderungen SSH-Dienst neu starten:systemctl restart sshd
Wichtig: Erst mit dem neuen Schlüssel testen, bevor Sie die Passwort-Authentifizierung deaktivieren! Sonst sperren Sie sich aus.
SSH Config – mehrere Server einfach verwalten
Erstellen Sie ~/.ssh/config auf Ihrem lokalen PC:
`Host webserver
HostName 203.0.113.10
User admin
Port 2222
IdentityFile ~/.ssh/id_ed25519
Host backup-nas
HostName 192.168.1.50
User backup
IdentityFile ~/.ssh/id_rsa
Host *.ihrefirma.de
User adminuser
IdentityFile ~/.ssh/firma_key`
Dann reicht:ssh webserver
statt:ssh -i ~/.ssh/id_ed25519 -p 2222 [email protected]
SSH-Agent – Passphrase nur einmal eingeben
Der SSH-Agent speichert entschlüsselte private Schlüssel temporär im Speicher:
eval "$(ssh-agent -s)" # Agent starten ssh-add ~/.ssh/id_ed25519 # Schlüssel hinzufügen (Passphrase einmal eingeben)
Jetzt werden alle SSH-Verbindungen automatisch authentifiziert ohne erneute Passphrase-Eingabe – bis zum Neustart.
SSH-Härtung: Fail2Ban einrichten
Fail2Ban sperrt IPs nach mehreren fehlgeschlagenen Anmeldeversuchen:
`apt install fail2ban -y
cat > /etc/fail2ban/jail.local << 'EOF'
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
findtime = 600
EOF
systemctl restart fail2ban`
FAQ
Kann ich denselben SSH-Schlüssel auf mehreren Servern verwenden?
Ja, kopieren Sie einfach den gleichen Public Key in die authorized_keys-Datei aller Server.
Was passiert wenn ich den privaten Schlüssel verliere?
Sie können sich nicht mehr einloggen. Erstellen Sie immer einen neuen Schlüssel und kopieren Sie den Public Key auf den Server. Bei Root-Verlust brauchen Sie Konsolen-Zugang (KVM, IPMI, Cloud-Console).
Sind Ed25519-Schlüssel sicherer als RSA-4096?
Beide sind für aktuell berechenbare Angriffe unknackbar. Ed25519 ist schneller, kürzer und gilt als moderner. RSA hat bessere Kompatibilität mit sehr alten Systemen.
Fazit
SSH-Schlüssel-Authentifizierung ist ein Muss für jeden IT-Administrator. Die Einrichtung dauert 10 Minuten und macht Ihre Server erheblich sicherer als reine Passwort-Authentifizierung.
Als IT-Sicherheitsdienstleister in Heidelberg sichern wir Server-Infrastrukturen für Unternehmen in Mannheim, Ludwigshafen und der gesamten Rhein-Neckar-Region. Jetzt Server-Härtung anfragen.