WMP Sites

SSH Keygen: Der ultimative Leitfaden zur Generierung sicherer SSH-Schlüssel

Lukas Fuchs vor 2 Jahren DevOps & Deployment 3 Min. Lesezeit

Was ist SSH Keygen und wozu wird es verwendet?

Was ist SSH Keygen?

SSH Keygen ist ein Befehlszeilentool, das du verwenden kannst, um SSH-Schlüsselpaare zu generieren. SSH (Secure Shell) ist ein Protokoll, das zur sicheren remote Verbindung mit Computern über ein Netzwerk verwendet wird.

Wozu dient SSH Keygen?

SSH Keygen ermöglicht es dir, anstelle von Passwörtern SSH-Schlüssel für die Authentifizierung zu verwenden. Dies bietet mehrere Vorteile:

Verschlüsselte Authentifizierung

SSH-Schlüssel basieren auf Kryptographie mit öffentlichen und privaten Schlüsseln. Dein privater Schlüssel bleibt lokal auf deinem Computer gespeichert, während du deinen öffentlichen Schlüssel mit dem Remote-Server teilst. Der Server authentifiziert dich dann, indem er deinen öffentlichen Schlüssel mit dem von dir gesendeten signierten Hash vergleicht.

Verbesserte Sicherheit

Da Passwörter kompromittiert werden können, bieten SSH-Schlüssel eine sicherere Alternative. Du kannst deine privaten Schlüssel auch mit Passphrasen schützen, um eine zusätzliche Sicherheitsebene hinzuzufügen.

Automatisierte Authentifizierung

Automatisierte Prozesse wie Batch-Skripte und Cron-Jobs können SSH-Schlüssel zur Authentifizierung verwenden, ohne dass ein Benutzer eingreifen muss.

Remote-Verwaltung

SSH-Schlüssel ermöglichen es dir, Remote-Computer ohne Passworteingabe zu verwalten. Dies ist praktisch für Systemverwalter und DevOps-Teams.

Vorteile der Verwendung von SSH-Schlüsseln

Die Verwendung von SSH-Schlüsseln bietet zahlreiche Vorteile gegenüber dem herkömmlichen Anmeldeverfahren mit Passwort:

Verbesserte Sicherheit

  • Keine Brute-Force-Angriffe: Im Gegensatz zu Passwörtern sind SSH-Schlüssel zu lang, als dass man sie erraten könnte, was Brute-Force-Angriffe praktisch unmöglich macht.
  • Kein Diebstahl durch Phishing oder Malware: Da SSH-Schlüssel nicht über das Netzwerk übertragen werden, können sie nicht durch Phishing-E-Mails oder Malware gestohlen werden.

Bequemlichkeit

  • Schlüsselbasierte Authentifizierung ohne Passwort: Auf Remote-Server kann ohne Eingabe eines Passworts zugegriffen werden, was den Anmeldeprozess automatisiert.
  • Automatisierung der Skripterstellung: SSH-Schlüssel können in Skripts und Konfigurationen verwendet werden, um Aufgaben auf Remote-Servern zu automatisieren.

Compliance und Audit

  • Verbesserte Compliance: SSH-Schlüssel ermöglichen die Implementierung von Compliance-Anforderungen wie NIST SP 800-53, die eine schlüsselbasierte Authentifizierung vorschreiben.
  • Erleichterte Audits: Audit-Trails können zur Nachverfolgung des Zugriffs auf Remote-Server verwendet werden, da SSH-Schlüssel eine eindeutige Identifizierung jedes Benutzers ermöglichen.

Weitere Vorteile

  • Kompatibilität mit verschiedenen Plattformen: SSH-Schlüssel werden von allen gängigen Betriebssystemen und SSH-Clients unterstützt.
  • Unterstützung für mehrere Schlüssel: Mehrere SSH-Schlüssel können für verschiedene Zwecke generiert werden, z. B. für verschiedene Benutzer oder Server.
  • Integration mit Tools für die Schlüsselverwaltung: Es gibt zahlreiche Tools zur Verwaltung und Bereitstellung von SSH-Schlüsseln, wie z. B. SSH Key Manager von Royal TS.

Auswahl des geeigneten Schlüsseltyps

Wenn du ein SSH-Schlüsselpaar generierst, musst du die Wahl zwischen verschiedenen Schlüsseltypen treffen. Die beiden gängigsten Typen sind:

RSA (Rivest-Shamir-Adleman)

  • Vorteile:
    • Etablierter und weit verbreiteter Schlüsseltyp
    • Hochgradig sicher und bietet starke Verschlüsselung
    • Kann für die Signatur sowie für die Verschlüsselung verwendet werden
  • Nachteile:
    • Langsamere Leistung im Vergleich zu ECDSA

ECDSA (Elliptic Curve Digital Signature Algorithm)

  • Vorteile:
    • Schneller und effizienter als RSA
    • Gilt als sicherer als RSA, besonders gegen Quantenangriffe
    • Kleinere Schlüssellängen sind möglich, was die Sicherheit bei begrenztem Speicherplatz verbessert
  • Nachteile:
    • Nicht so weit verbreitet wie RSA
    • Wird nur für die Signatur verwendet, nicht für die Verschlüsselung

Welchen Schlüsseltyp solltest du wählen?

Die Wahl des Schlüsseltyps hängt von deinen spezifischen Anforderungen ab:

  • Sicherheit: RSA ist der traditionellere und bewährte Schlüsseltyp, während ECDSA als etwas sicherer gegen Quantenangriffe gilt.
  • Leistung: ECDSA ist schneller und effizienter als RSA.
  • Kompatibilität: RSA ist mit einem breiteren Spektrum von Servern und Geräten kompatibel als ECDSA.
  • Anwendungsfall: ECDSA ist besonders nützlich für ressourcenbeschränkte Geräte oder für Anwendungen, die hohe Signaturgeschwindigkeiten erfordern.

Festlegen der Schlüsselgröße

Die Größe deines SSH-Schlüssels ist entscheidend für die Sicherheit deiner Verbindung. Je größer der Schlüssel, desto schwieriger ist es für potenzielle Angreifer, ihn zu knacken. Allerdings kann ein größerer Schlüssel auch die Leistung deines Systems beeinträchtigen.

Verfügbare Schlüsselgrößen

Üblicherweise kannst du aus Schlüsselgrößen zwischen 1.024 und 8.192 Bit wählen.

Empfohlene Schlüsselgrößen

Im Allgemeinen wird eine Schlüsselgröße von mindestens 2.048 Bit empfohlen. Diese Größe bietet einen ausreichenden Schutz vor den meisten Angriffen und hat keine nennenswerten Auswirkungen auf die Leistung.

Faktoren, die bei der Schlüsselgrößenauswahl zu berücksichtigen sind

Wenn du die Schlüsselgröße festlegst, solltest du Folgendes berücksichtigen:

Sicherheitsanforderungen

Wenn du ein hohes Sicherheitsniveau benötigst, solltest du eine größere Schlüsselgröße wählen.

Rechenleistung

Eine größere Schlüsselgröße kann die Rechenleistung deines Systems beeinträchtigen. Wenn du ein älteres oder ressourcenbeschränktes System verwendest, solltest du eine kleinere Schlüsselgröße wählen.

Zukünftige Sicherheit

Da sich die Rechenleistung ständig verbessert, solltest du eine Schlüsselgröße wählen, die auch zukünftigen Angriffen standhält.

Best Practices

  • Wähle eine Schlüsselgröße von mindestens 2.048 Bit.
  • Verwende für besonders sensible Daten eine größere Schlüsselgröße (z. B. 4.096 Bit).
  • Vermeide die Verwendung von Schlüsselgrößen unter 1.024 Bit, da diese nicht mehr als sicher gelten.

Hinzufügen eines Passphraseschutzes

Um die Sicherheit deines privaten Schlüssels weiter zu verbessern, kannst du einen Passphrasenschutz hinzufügen. Dabei handelt es sich um ein Passwort, das du jedes Mal eingeben musst, wenn du den Schlüssel verwendest, um dich bei einem Server anzumelden. Dadurch wird verhindert, dass Unbefugte deinen Schlüssel verwenden können, selbst wenn er gestohlen wird.

Vorteile eines Passphraseschutzes

  • Erhöhte Sicherheit: Die zusätzliche Authentifizierungsebene macht es für Angreifer noch schwieriger, sich Zugang zu deinem Konto zu verschaffen.
  • Schutz vor Brute-Force-Angriffen: Ohne Passphrasenschutz könnten Angreifer jeden erdenklichen Passcode ausprobieren, um deinen privaten Schlüssel zu knacken. Ein Passwortschutz macht dies praktisch unmöglich.

Hinzufügen eines Passphrasenschutzes für deinen SSH-Schlüssel

So fügst du deinem SSH-Schlüssel einen Passphrasenschutz hinzu:

  1. Generiere ein neues SSH-Schlüsselpaar (siehe vorheriger Abschnitt).
  2. Gib den folgenden Befehl ein:
    ssh-keygen -p
    
  3. Du wirst aufgefordert, eine Passphrase einzugeben.
  4. Bestätige die Passphrase, indem du sie erneut eingibst.
  5. Dein Schlüsselpaar wird nun mit einem Passphrasenschutz geschützt.

Tipps zur Auswahl einer starken Passphrase

  • Verwende eine lange, komplexe Passphrase mit mindestens 16 Zeichen.
  • Vermeide die Verwendung von leicht zu erratenden Wörtern oder Phrasen.
  • Verwende eine Kombination aus Groß- und Kleinbuchstaben, Zahlen und Symbolen.
  • Speichere deine Passphrase niemals als Klartext auf deinem Computer oder Handy.

Anmelden bei einem Server mit einem passwortgeschützten SSH-Schlüssel

Wenn du dich bei einem Server mit einem passwortgeschützten SSH-Schlüssel anmeldest, wirst du aufgefordert, die Passphrase einzugeben. Gib die Passphrase ein und drücke auf die Eingabetaste, um dich anzumelden.

Fehlerbehebung bei Problemen mit dem Passphrasenschutz

Wenn du beim Anmelden mit einem passwortgeschützten SSH-Schlüssel Probleme hast, überprüfe Folgendes:

  • Überprüfe, ob du die richtige Passphrase eingegeben hast.
  • Überprüfe, ob der private Schlüssel die richtige Berechtigung hat. Die Berechtigung sollte auf 600 gesetzt sein.
  • Überprüfe, ob der öffentliche Schlüssel zum privaten Schlüssel passt. Du kannst dies mit dem folgenden Befehl tun:
    ssh-keygen -y -f private_key > public_key
    ssh-keygen -v -f public_key
    

Speichern des privaten Schlüssels sicher

Nachdem du dein neues SSH-Schlüsselpaar generiert hast, ist es wichtig, den privaten Schlüssel sicher aufzubewahren. Denn dieser Schlüssel ermöglicht den Zugriff auf deine Remote-Server und sollte daher vor unbefugtem Zugriff geschützt werden.

Auswahl eines Speicherorts

Überlege dir, wo du den privaten Schlüssel aufbewahrst. Folgende Optionen stehen dir zur Verfügung:

  • Lokaler Computer: Du kannst den privaten Schlüssel auf deinem lokalen Computer in einem verschlüsselten Verzeichnis speichern. Dies ist eine bequeme Option, bietet aber möglicherweise nicht das gleiche Sicherheitsniveau wie andere Optionen.
  • Externer Speicher: Die Speicherung des Schlüssels auf einem externen Laufwerk oder einem USB-Stick kann zusätzlichen Schutz bieten. Achte jedoch darauf, diese Geräte vor Diebstahl oder Beschädigung zu schützen.
  • Passwort-Manager: Passwort-Manager wie LastPass oder 1Password können auch zum sicheren Speichern von SSH-Schlüsseln verwendet werden. Diese Dienste verschlüsseln deine Schlüssel und ermöglichen den Zugriff von mehreren Geräten aus.

Schutz mit Passphrase

Beim Generieren deines SSH-Schlüsselpaars solltest du eine starke Passphrase festlegen. Diese wird zum Entschlüsseln deines privaten Schlüssels verwendet, wenn du ihn verwenden möchtest. Wähle eine Passphrase, die lang, komplex und leicht zu merken ist.

Vermeidung von unbefugtem Zugriff

Treffe zusätzliche Maßnahmen, um unbefugten Zugriff auf deinen privaten Schlüssel zu verhindern:

  • Beschränke den Zugriff: Gib nur autorisierten Benutzern Zugriff auf das Verzeichnis, in dem dein privater Schlüssel gespeichert ist.
  • Verwende Firewall-Einstellungen: Konfiguriere deine Firewall so, dass nur vertrauenswürdige IP-Adressen auf deinen SSH-Server zugreifen können.
  • Aktiviere Zwei-Faktor-Authentifizierung: Richte eine Zwei-Faktor-Authentifizierung für zusätzliche Sicherheit ein. Dies erfordert die Eingabe eines Codes von deinem Smartphone oder einem Sicherheitsschlüssel, zusätzlich zum privaten Schlüssel.

Denke daran, dass die Sicherheit deines SSH-Schlüssels von deiner Verantwortung abhängt. Indem du die angegebenen Schritte befolgst, kannst du die Sicherheit deines privaten Schlüssels gewährleisten und dein System vor unberechtigtem Zugriff schützen.

Konvertieren von privaten Schlüsseln in andere Formate

In bestimmten Fällen musst du möglicherweise deinen privaten SSH-Schlüssel in ein anderes Format konvertieren. Dazu gibt es verschiedene Gründe:

Häufige Konvertierungsformate

Die häufigsten Konvertierungsformate für private SSH-Schlüssel sind:

  • OpenSSH-Format (PEM): Das Standardformat für SSH-Schlüssel, das von den meisten SSH-Clients und -Servern unterstützt wird.
  • PuTTY-Format (PPK): Ein von PuTTY verwendetes proprietäres Format.
  • Amazon Web Services (AWS) EC2-Format: Ein von AWS EC2-Instanzen verwendetes spezifisches Format.

Gründe für die Konvertierung

Du musst deinen privaten Schlüssel möglicherweise konvertieren, wenn:

  • Du einen SSH-Client verwendest, der ein bestimmtes Format erfordert.
  • Du deine Schlüssel mit einer Anwendung oder einem Dienst integrierst, der ein anderes Format verwendet.
  • Du die Kompatibilität mit bestimmten Geräten oder Plattformen sicherstellen musst.

Konvertierung mit ssh-keygen

Du kannst deinen privaten SSH-Schlüssel mit dem Befehl ssh-keygen -p konvertieren:

ssh-keygen -p -e -f <private-key-file>

Wobei:

  • -p die Konvertierungsoption ist.
  • -e das Ausgabeformat angibt (z. B. -e pem für PEM).
  • -f den Pfad zur privaten Schlüsseldatei angibt.

Konvertierung mit PuTTYgen (für PuTTY-Format)

Wenn du deinen Schlüssel in das PuTTY-Format konvertieren möchtest, kannst du das Tool PuTTYgen verwenden:

  1. Lade PuTTYgen herunter und installiere es.
  2. Öffne PuTTYgen und wähle im Menü "Conversions" die Option "Import Key".
  3. Wähle deinen privaten SSH-Schlüssel aus und importiere ihn.
  4. Gebe einen Passphrase ein (optional).
  5. Wähle im Menü "Conversions" die Option "Export OpenSSH key".

Weitere Konvertierungstools

Zusätzlich zu ssh-keygen und PuTTYgen gibt es auch verschiedene Online-Tools und Tools von Drittanbietern, mit denen du private SSH-Schlüssel konvertieren kannst, darunter:

Wichtige Hinweise

Beachte die folgenden wichtigen Hinweise, wenn du private SSH-Schlüssel konvertierst:

  • Verwende beim Konvertieren immer eine sichere Verbindung.
  • Bewahre deine Passphrases sicher auf oder speichere sie in einem Passwort-Manager.
  • Erstelle nach der Konvertierung eine Sicherungskopie des konvertierten Schlüssels.
  • Lösche die ursprüngliche private Schlüsseldatei, nachdem du den konvertierten Schlüssel erfolgreich erstellt hast.

Fehlerbehebung bei SSH-Keygen-Problemen

Wenn du bei der Verwendung von SSH Keygen auf Probleme stößt, gibt es einige Schritte, die du zur Fehlerbehebung unternehmen kannst:

Berechtigungsprobleme

  • Fehler: Permission denied beim Generieren des Schlüssels
  • Lösung: Stelle sicher, dass du über Schreibrechte im Verzeichnis verfügst, in dem du den Schlüssel speichern möchtest. Du kannst den Befehl chmod verwenden, um Berechtigungen zu ändern.

Ungültige Eingaben

  • Fehler: Invalid argument beim Festlegen der Schlüsselgröße
  • Lösung: Überprüfe, ob die angegebene Schlüsselgröße gültig ist und den unterstützten Bereich (z. B. 2048 bis 4096 Bit) einhält.

Passwortverschlüsselung fehlgeschlagen

  • Fehler: Error encrypting passphrase beim Hinzufügen eines Passwortschutzes
  • Lösung: Versuche, eine andere Verschlüsselungsmethode zu verwenden (z. B. aes-256-cbc anstelle von aes-128-cbc). Du kannst die verfügbaren Optionen mit dem Befehl openssl enc -help anzeigen.

Probleme beim Hinzufügen des öffentlichen Schlüssels

  • Fehler: Permission denied (publickey) beim Versuch, den öffentlichen Schlüssel zum Remote-Server hinzuzufügen
  • Lösung: Stelle sicher, dass der Benutzer, unter dem du den SSH-Befehl ausführst, über die Berechtigung zum Schreiben in die Datei ~/.ssh/authorized_keys auf dem Remote-Server verfügt.

Probleme beim Generieren eines Schlüssels mit einem bestimmten Algorithmus

  • Fehler: No such file or directory beim Versuch, einen ECDSA-Schlüssel zu generieren
  • Lösung: Überprüfe, ob die von dir verwendete OpenSSL-Version die Generierung des gewünschten Algorithmus unterstützt. Du kannst die unterstützten Algorithmen mit dem Befehl openssl list -algorithms anzeigen.

Andere Probleme

Wenn du immer noch Probleme bei der Verwendung von SSH Keygen hast, kannst du versuchen, den SSH-Agenten (z. B. ssh-agent) neu zu starten oder die SSH-Konfigurationsdateien zu überprüfen (~/.ssh/config und /etc/ssh/sshd_config). Es kann auch hilfreich sein, die Manpages von SSH Keygen (man ssh-keygen) und SSH (man ssh) zu konsultieren.

Weitere Beiträge

Folge uns

Neue Beiträge

DevOps & Deployment

Abrufen der Uhrzeit in Linux: Methoden und gängige Befehle für schnelle Kontrolle

AUTOR • Jun 15, 2026
DevOps & Deployment

ZIP Befehl: Archivdateien erstellen, komprimieren und extrahieren schnell erklärt

AUTOR • Jun 15, 2026
DevOps & Deployment

Kali Linux auf VMware installieren und konfigurieren: Schritt-für-Schritt Anleitung für eine saubere Lab-Umgebung

AUTOR • Jun 15, 2026
DevOps & Deployment

Bottles: Windows-Anwendungen mühelos auf Linux ausführen – so klappt es ohne Frust

AUTOR • Jun 15, 2026
DevOps & Deployment

Linux Tastatur anpassen: Die ultimative Anleitung für mehr Effizienz

AUTOR • Jun 15, 2026
Frontend

JavaScript in HTML einbinden: So integrierst du Skripte in deine Website

AUTOR • Jun 15, 2026
DevOps & Deployment

Das ikonische Kali Linux Logo: Symbolik, Geschichte und Bedeutung

AUTOR • Jun 15, 2026
DevOps & Deployment

Entpacken von RAR-Archiven unter Linux: Anleitung für unrar ohne Umwege

AUTOR • Jun 15, 2026
DevOps & Deployment

CPU Temperatur unter Linux anzeigen: Effektive Methoden zur Überwachung der Systemtemperatur

AUTOR • Jun 15, 2026
DevOps & Deployment

Linux auf ARM64-Architektur: Vorteile und Anwendungsfälle, die sich wirklich lohnen

AUTOR • Jun 15, 2026
Frontend

Videos auf voller Bildschirmgröße in HTML einbetten: Schritt-für-Schritt-Anleitung für saubere Fullscreen-Embeds

AUTOR • Jun 15, 2026
Backend

Linux Permission Denied: Ursachen und Lösungsstrategien, die wirklich helfen

AUTOR • Jun 15, 2026
DevOps & Deployment

Linux Mint zurücksetzen: So setzt du Linux Mint sauber zurück

AUTOR • Jun 15, 2026
Frontend

Beschleunigen Sie die Dateneingabe mit HTML Datalist: Schnellere Formulare ohne Overhead

AUTOR • Jun 15, 2026
DevOps & Deployment

Python Version prüfen: So ermitteln Sie die aktuelle Version schnell und sicher

AUTOR • Jun 15, 2026
Backend

VLC Media Player für Linux: Umfassende Anleitung für Installation und Optimierung

AUTOR • Jun 15, 2026
DevOps & Deployment

Sway Window Manager: Eine schlanke und benutzerfreundliche Wahl für mein Linux-Setup

AUTOR • Jun 15, 2026
DevOps & Deployment

Linux Mint und Snap: Die umfassende Anleitung zur Paketverwaltung

AUTOR • Jun 14, 2026
DevOps & Deployment

Linux Deinstallation Schritt für Schritt: So entfernst du Linux sauber vom PC

AUTOR • Jun 14, 2026
DevOps & Deployment

Teilen von Dateien unter Linux mit dem Befehl split: so geht’s schnell und sauber

AUTOR • Jun 14, 2026

Beliebte Beiträge

Frontend

Hintergrundvideos mit CSS: So fügen Sie dynamischen Inhalt zu Ihrer Website hinzu

AUTOR • Jul 25, 2024
JavaScript

So kopieren Sie Text einfach mithilfe von JavaScript in die Zwischenablage

AUTOR • Apr 24, 2024
Frontend

Z-Index: Die ultimative Anleitung zur Steuerung der Elementüberlappung

AUTOR • Jul 27, 2024
DevOps & Deployment

Exit-Codes unter Linux: Ein umfassender Überblick

AUTOR • May 09, 2024
DevOps & Deployment

Midnight Commander für Linux: Eine umfassende Übersicht für die Befehlszeilennavigation

AUTOR • May 06, 2024
DevOps & Deployment

Unverzichtbare Linux-Tools für Entwickler und Sysadmins

AUTOR • May 06, 2024
Frameworks & Libraries

Karma-Jasmine-HTML-Reporter: Gestalte deine Unit-Test-Reports ansprechend

AUTOR • Apr 24, 2024
Frontend

CSS: Deaktivieren des Scrollens

AUTOR • Apr 24, 2024
DevOps & Deployment

Sortierung von Linux-Dateien nach Datum mit dem Befehl "ls"

AUTOR • May 06, 2024
DevOps & Deployment

Cinebench: Leistungsbenchmarking für Linux-Systeme

AUTOR • May 06, 2024
DevOps & Deployment

Der Linux-Befehl mail: Senden und Empfangen von E-Mails über die Befehlszeile

AUTOR • May 06, 2024
DevOps & Deployment

Linux mit Surfshark: Anleitung für eine sichere und private Internetverbindung

AUTOR • May 06, 2024
Frontend

Kopfzeile Bachelorarbeit - Alles, was du wissen musst

AUTOR • Sep 10, 2024
DevOps & Deployment

Die ultimative Anleitung zur Wahl des besten Linux-Videoeditors

AUTOR • May 06, 2024
Frontend

Kostenlose HTML-Widgets, um deine Website zu verbessern

AUTOR • Apr 24, 2024
DevOps & Deployment

Debian herunterfahren: Ein umfassender Leitfaden

AUTOR • May 06, 2024
DevOps & Deployment

Adobe Reader für Linux: Installation, Konfiguration und Verwaltung

AUTOR • May 06, 2024
Frontend

Microsoft Office auf Linux: Leitfaden für Installation und Verwendung

AUTOR • May 06, 2024
DevOps & Deployment

SSH Keygen: Der ultimative Leitfaden zur Generierung sicherer SSH-Schlüssel

AUTOR • May 09, 2024
DevOps & Deployment

Entdecke die Leistung von VMware Workstation Player: Virtualisierung mit Leichtigkeit

AUTOR • May 06, 2024