Einführung in SSH-Schlüssel
SSH-Schlüssel (Secure Shell) bieten eine wesentlich sicherere Authentifizierungsmethode als herkömmliche Passwörter. Anstatt bei jeder Verbindung ein Passwort einzugeben, verwenden Sie ein Paar kryptografischer Schlüssel:
- Privater Schlüssel : Verbleibt auf Ihrem lokalen Computer (niemals teilen)
- Öffentlicher Schlüssel : Auf dem VPS-Server installiert
Beim Verbindungsaufbau überprüft der Server, ob Ihr privater Schlüssel mit dem registrierten öffentlichen Schlüssel übereinstimmt. Wenn die Übereinstimmung bestätigt wird, sind Sie sofort authentifiziert.
Vorteile von SSH-Schlüsseln
| Aspekt | Passwort | SSH-Schlüssel |
|---|---|---|
| Sicherheit | Anfällig für Brute-Force-Angriffe | Praktisch nicht zu knacken |
| Bequemlichkeit | Manuelle Eingabe bei jeder Verbindung | Automatische Verbindung |
| Teilen | Risiko bei Offenlegung | Öffentlicher Schlüssel ohne Risiko teilbar |
| Länge | Normalerweise 8-20 Zeichen | 2048-4096-Bit-Verschlüsselung |
| Automatisierung | Schwer zu skripten | Ideal für Skripte |
🖥️ Methode 1: Generieren eines SSH-Schlüssels unter Windows mit PuTTY
Schritt 1: PuTTY und PuTTYgen herunterladen
PuTTY ist der beliebteste SSH-Client für Windows. PuTTYgen ist das enthaltene Schlüsselgenerierungsprogramm.
- Gehe zur offiziellen Website: https://www.putty.org/
- Lade das MSI-Installationspaket herunter (64-Bit oder 32-Bit je nach System)
- Installiere PuTTY - PuTTYgen wird automatisch mitinstalliert
Sie können auch nur puttygen.exe herunterladen, wenn Sie bereits PuTTY haben.
Die heruntergeladene puttygen.exe-Datei
Schritt 2: PuTTYgen starten
-
Öffne PuTTYgen über :
- Startmenü → Alle Programme → PuTTY → PuTTYgen
- Oder doppelklicke auf
puttygen.exe
-
Das Schlüsselgenerierungsfenster wird angezeigt:
Hauptfenster von PuTTYgen
Schritt 3: Konfigurieren der Einstellungen
Vor dem Generieren des Schlüssels überprüfen Sie die Einstellungen am unteren Rand des Fensters:
| Parameter | Empfohlener Wert | Beschreibung |
|---|---|---|
| Schlüsseltyp | RSA oder EdDSA (Ed25519) | Verschlüsselungsalgorithmus |
| Bitanzahl | 4096 (RSA) oder 256 (Ed25519) | Schlüssellänge |
💡 Empfehlung : Für maximale Sicherheit wählen Sie RSA 4096 Bit oder EdDSA (Ed25519), das moderner und leistungsfähiger ist.
Schritt 4: Generieren des Schlüsselpaares
- Klicke auf die Schaltfläche Generieren
- Wichtig : Bewege deine Maus zufällig im leeren Bereich, um Entropie (kryptografische Zufälligkeit) zu erzeugen
Bewege deine Maus, um Zufälligkeit zu erzeugen
- Warte, bis sich der Fortschrittsbalken füllt
Schritt 5: Konfigurieren und Speichern der Schlüssel
Nach dem Generieren des Schlüssels siehst du dieses Bildschirm:
Erfolgreich generierter SSH-Schlüssel
Hinzufügen einer Passphrase (empfohlen)
Die Passphrase fügt eine zusätzliche Sicherheitsebene hinzu. Selbst wenn jemand Ihren privaten Schlüssel erhält, kann er ihn ohne die Passphrase nicht verwenden.
Eingabe der Passphrase
- In Schlüsselpassphrase gib eine geheime Phrase ein
- Bestätige in Passphrase bestätigen
Speichern des privaten Schlüssels
- Klicke auf Privaten Schlüssel speichern
- Wähle einen sicheren Speicherort
- Benenne die Datei (z.B.:
mein_vps_schlüssel.ppk)
Schaltfläche Privaten Schlüssel speichern
Speichern der .ppk-Datei
Speichern des öffentlichen Schlüssels
- Klicke auf Öffentlichen Schlüssel speichern
- Benenne die Datei (z.B.:
mein_vps_schlüssel.pub)
Speichern des öffentlichen Schlüssels
Kopieren des öffentlichen Schlüssels im OpenSSH-Format
Wichtig : Für Linux-Server musst du den Schlüssel im OpenSSH-Format kopieren:
- Markiere den gesamten Text im Bereich "Öffentlicher Schlüssel zum Einfügen in die OpenSSH authorized_keys-Datei"
- Kopiere ihn (Strg+C)
- Behalte ihn für den nächsten Schritt bei
Das Format sieht so aus:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDx... rsa-key-20241210
Schritt 6: Konfigurieren von PuTTY zur Verwendung des Schlüssels
- Öffne PuTTY
- Im linken Menü navigiere zu: Verbindung → SSH → Authentifizierung → Anmeldeinformationen
Bereich Anmeldeinformationen in PuTTY
- Klicke auf Durchsuchen neben "Private Schlüsseldatei für die Authentifizierung"
Auswahl des privaten Schlüssels
- Wähle deine Datei
.ppk
Ausgewählte .ppk-Datei
- Gehe zurück zu Sitzung, gib die IP deines VPS ein und speichere die Sitzung
🐧 Methode 2: Generieren eines SSH-Schlüssels unter Linux/macOS
Schritt 1: Terminal öffnen
- Linux : Strg+Alt+T oder suche "Terminal"
- macOS : Programme → Dienstprogramme → Terminal
Schritt 2: Generieren des Schlüsselpaares
Option A : RSA 4096-Bit-Schlüssel (universal kompatibel)
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Option B : Ed25519-Schlüssel (empfohlen, moderner)
ssh-keygen -t ed25519 -C "[email protected]"
Schritt 3: Befolge die Anweisungen
Generierung eines öffentlichen/privaten ed25519-Schlüsselpaares.
Geben Sie den Dateinamen ein, in dem der Schlüssel gespeichert werden soll (/home/benutzer/.ssh/id_ed25519):
- Speicherort : Drücken Sie die Eingabetaste, um den Standardort zu akzeptieren (
~/.ssh/id_ed25519)
Passwort eingeben (leer für kein Passwort):
Passwort erneut eingeben:
- Passwort : Geben Sie ein geheimes Passwort ein (empfohlen) oder drücken Sie die Eingabetaste für keins
Schritt 4: Überprüfen der Erstellung
ls -la ~/.ssh/
Sie sollten sehen:
id_ed25519(oderid_rsa) - Privater Schlüsselid_ed25519.pub(oderid_rsa.pub) - Öffentlicher Schlüssel
Schritt 5: Anzeigen des öffentlichen Schlüssels
cat ~/.ssh/id_ed25519.pub
Ergebnis:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... [email protected]
Kopieren Sie diese Zeile vollständig, um sie auf dem Server zu installieren.
🚀 Installieren des öffentlichen Schlüssels auf dem VPS
Methode 1: Mit ssh-copy-id (Linux/macOS - Empfohlen)
Der Befehl ssh-copy-id automatisiert die Installation:
ssh-copy-id -i ~/.ssh/id_ed25519.pub benutzer@VPS_IP
Beispiel:
ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]
Sie müssen Ihr Passwort ein letztes Mal eingeben. Danach wird der Schlüssel automatisch installiert.
Methode 2: Manuelle Installation
Falls ssh-copy-id nicht verfügbar ist:
Schritt 1: Verbindung zum VPS mit Passwort
ssh root@VPS_IP
Schritt 2: Erstellen des .ssh-Verzeichnisses (falls erforderlich)
mkdir -p ~/.ssh
chmod 700 ~/.ssh
Schritt 3: Erstellen/Bearbeiten der authorized_keys-Datei
nano ~/.ssh/authorized_keys
Schritt 4: Einfügen des öffentlichen Schlüssels
Fügen Sie den zuvor kopierten öffentlichen Schlüssel ein (eine Zeile).
Für PuTTY ist es der Inhalt von "Public key for pasting into OpenSSH authorized_keys file".
Schritt 5: Speichern und Berechtigungen festlegen
chmod 600 ~/.ssh/authorized_keys
Schritt 6: Verbindung testen
Melden Sie sich ab und wieder an:
exit
ssh root@VPS_IP
Wenn alles funktioniert, werden Sie ohne Passwort verbunden sein (oder mit Ihrem Passwort, falls Sie eins festgelegt haben).
Methode 3: In einem Befehl (von Ihrem lokalen PC aus)
cat ~/.ssh/id_ed25519.pub | ssh root@VPS_IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
🔒 Absichern des SSH-Servers
Nach Konfiguration der SSH-Schlüssel erhöhen Sie die Sicherheit, indem Sie die Passwortauthentifizierung deaktivieren.
Schritt 1: SSH-Konfiguration bearbeiten
sudo nano /etc/ssh/sshd_config
Schritt 2: Parameter ändern
Suchen und ändern Sie diese Zeilen:
# Deaktivieren der Passwortauthentifizierung
PasswordAuthentication no
# Leere Passwörter deaktivieren
PermitEmptyPasswords no
# Öffentliche Schlüsselauthentifizierung aktivieren
PubkeyAuthentication yes
# Challenge-Response-Authentifizierung deaktivieren
ChallengeResponseAuthentication no
# Optional: Root-Anmeldung deaktivieren (erstellen Sie zuerst einen sudo-Benutzer)
# PermitRootLogin no
Schritt 3: SSH-Dienst neu starten
sudo systemctl restart sshd
⚠️ Achtung : Behalten Sie eine SSH-Sitzung während der Tests geöffnet! Bei falscher Konfiguration könnten Sie den Zugriff verlieren.
🛠️ Verwaltung von SSH-Schlüsseln
Hinzufügen mehrerer Schlüssel
Sie können mehrere Schlüssel (mehrere Computer, mehrere Benutzer) autorisieren:
nano ~/.ssh/authorized_keys
Fügen Sie einen Schlüssel pro Zeile hinzu.
Entfernen eines Schlüssels
Bearbeiten Sie authorized_keys und entfernen Sie die Zeile, die dem Schlüssel entspricht.
Passphrase eines vorhandenen Schlüssels ändern
ssh-keygen -p -f ~/.ssh/id_ed25519
Fingerprint eines Schlüssels anzeigen
ssh-keygen -lf ~/.ssh/id_ed25519.pub
🔄 Konvertieren von Schlüsselformaten
PPK zu OpenSSH (PuTTY → Linux)
In PuTTYgen:
- Laden Sie Ihre
.ppk-Datei mit Load - Gehen Sie zu Conversions → Export OpenSSH key
- Speichern Sie die Datei
OpenSSH zu PPK (Linux → PuTTY)
In PuTTYgen:
- Gehen Sie zu Conversions → Import key
- Wählen Sie Ihren privaten OpenSSH-Schlüssel aus (
id_rsaoderid_ed25519) - Klicken Sie auf Save private key
🔧 Fehlerbehebung
"Permission denied (publickey)"
Mögliche Ursachen :
- Öffentlicher Schlüssel nicht auf dem Server installiert
- Falsche Berechtigungen für
.sshoderauthorized_keys - Falscher privater Schlüssel verwendet
Lösungen :
# Berechtigungen überprüfen (auf dem Server)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
# Überprüfen, ob der Schlüssel in authorized_keys vorhanden ist
cat ~/.ssh/authorized_keys
"Connection refused"
Mögliche Ursachen :
- SSH-Dienst nicht gestartet
- Firewall blockiert Port 22
Lösungen :
# SSH-Status überprüfen
sudo systemctl status sshd
# Bei Bedarf neu starten
sudo systemctl start sshd
# Firewall überprüfen
sudo ufw status
sudo ufw allow 22
"Host key verification failed"
Der Server wurde geändert (Neuinstallation, neue IP). Löschen Sie den alten Eintrag:
ssh-keygen -R VPS_IP
Passphrase wird bei jeder Verbindung angefordert
Verwenden Sie ssh-agent, um die Passphrase zu speichern:
# Agent starten
eval "$(ssh-agent -s)"
# Schlüssel hinzufügen
ssh-add ~/.ssh/id_ed25519
📋 Zusammenfassung der Befehle
| Aktion | Befehl |
|---|---|
| Generiere RSA 4096 Schlüssel | ssh-keygen -t rsa -b 4096 |
| Generiere Ed25519 Schlüssel | ssh-keygen -t ed25519 |
| Kopiere Schlüssel zum Server | ssh-copy-id -i ~/.ssh/id_ed25519.pub benutzer@IP |
| Zeige öffentlichen Schlüssel an | cat ~/.ssh/id_ed25519.pub |
| Teste Verbindung verbose | ssh -v benutzer@IP |
| Ändere Passphrase | ssh-keygen -p -f ~/.ssh/id_ed25519 |
| Zeige Fingerprint an | ssh-keygen -lf ~/.ssh/id_ed25519.pub |
📁 Struktur der SSH-Dateien
~/.ssh/
├── authorized_keys # Autorisierte öffentliche Schlüssel (auf dem Server)
├── id_ed25519 # Privater Ed25519-Schlüssel (auf dem Client)
├── id_ed25519.pub # Öffentlicher Ed25519-Schlüssel (auf dem Client)
├── id_rsa # Privater RSA-Schlüssel (auf dem Client)
├── id_rsa.pub # Öffentlicher RSA-Schlüssel (auf dem Client)
├── known_hosts # Fingerabdrücke bekannter Server
└── config # Benutzerdefinierte Konfiguration (optional)
Erforderliche Berechtigungen
| Datei/Verzeichnis | Berechtigung | Befehl |
|---|---|---|
~/.ssh/ |
700 | chmod 700 ~/.ssh |
authorized_keys |
600 | chmod 600 ~/.ssh/authorized_keys |
| Privater Schlüssel | 600 | chmod 600 ~/.ssh/id_ed25519 |
| Öffentlicher Schlüssel | 644 | chmod 644 ~/.ssh/id_ed25519.pub |
💡 Best Practices
-
Verwenden Sie Ed25519 für neue Schlüssel (sicherer und leistungsfähiger als RSA)
-
Legen Sie immer eine Passphrase fest für Ihre privaten Schlüssel
-
Teilen Sie niemals Ihren privaten Schlüssel - nur der öffentliche Schlüssel sollte kopiert werden
-
Sichern Sie Ihre Schlüssel an einem sicheren Ort (Passwort-Manager, Safe)
-
Verwenden Sie unterschiedliche Schlüssel für verschiedene Zwecke (Arbeit, persönlich, kritische Server)
-
Deaktivieren Sie die Passwortauthentifizierung, sobald die Schlüssel konfiguriert sind
-
Überprüfen Sie regelmäßig die Datei
authorized_keys, um ungenutzte Schlüssel zu entfernen -
Wechseln Sie regelmäßig Ihre Schlüssel (mindestens alle 1-2 Jahre)
❓ FAQ
Was ist der Unterschied zwischen RSA und Ed25519 ?
| Aspekt | RSA | Ed25519 |
|---|---|---|
| Sicherheit | Hervorragend (4096 Bits) | Hervorragend (256 Bits) |
| Leistung | Langsamer | Schneller |
| Schlüsselgröße | Groß | Klein |
| Kompatibilität | Universal | Sehr gut (nach 2014) |
Empfehlung : Ed25519 für neue Bereitstellungen, RSA für die Kompatibilität mit älteren Systemen.
Kann ich denselben Schlüssel für mehrere Server verwenden ?
Ja, Sie können denselben öffentlichen Schlüssel auf mehreren Servern installieren. Verwenden Sie jedoch für optimale Sicherheit unterschiedliche Schlüssel für kritische Umgebungen.
Wie füge ich einen Kommentar zu meinem Schlüssel hinzu ?
Der Parameter -C ermöglicht das Hinzufügen eines Kommentars :
ssh-keygen -t ed25519 -C "laptop-travail-2024"
Verfallen SSH-Schlüssel ?
Nein, SSH-Schlüssel haben kein integriertes Ablaufdatum. Es liegt an Ihnen, sie regelmäßig zu aktualisieren.

