Viele Schlüssel und mehrere Schlüsselbunde an einem Geländer

SSH Keys: Sicherer Zugang zu Servern und Git-Repositories

SSH Keys sind eine sichere und komfortable Methode zur Authentifizierung bei Servern oder Git-Repositories wie GitHub und GitLab. Statt jedes Mal ein Passwort eingeben zu müssen, ermöglicht ein SSH Key den Zugang über eine kryptografische Schlüsseldatei. In diesem Blog-Beitrag erfährst du, warum SSH Keys nützlich sind, wie du sie erstellst und wie du sie für die Anmeldung auf einem Server oder in Git-Hosting-Diensten nutzt.

Warum SSH Keys?

SSH (Secure Shell) ermöglicht eine verschlüsselte Verbindung zu entfernten Servern. Standardmäßig nutzt man dabei entweder Passwörter oder SSH Keys. Letztere bieten klare Vorteile:

  • Höhere Sicherheit – SSH Keys sind schwerer zu knacken als Passwörter, vor allem wenn moderne Algorithmen wie ED25519 genutzt werden.
  • Mehr Komfort – Keine manuelle Passworteingabe bei jeder Verbindung.
  • Automatisierte Prozesse – Ideal für Continuous Integration (CI/CD) oder automatische Deployments.

SSH Keys bestehen aus zwei Teilen:

  • Privater Schlüssel (id_ed25519) – Bleibt sicher auf deinem Computer.
  • Öffentlicher Schlüssel (id_ed25519.pub) – Wird auf Servern oder bei GitHub/GitLab hinterlegt.

Die Authentifizierung erfolgt über ein Challenge-Response-Verfahren, bei dem der Server überprüft, ob dein privater Schlüssel zum öffentlichen Schlüssel passt. Das Verfahren ist im folgenden Video genauer erklärt.

Info Icon

Dieses Video wird über eine externe Plattform (YouTube) gehostet. Das Laden bedarf der Zustimmung unserer Datenschutzbestimmungen.

Einstellung vornehmen

Warum RSA nicht mehr empfohlen wird

Lange Zeit war RSA der Standard für SSH Keys. Allerdings gibt es gute Gründe, stattdessen ED25519 zu verwenden:

  • Längere Schlüssellängen sind notwendig:
    • RSA benötigt mindestens 3072 Bit für ein sicheres Niveau.
    • 4096-Bit-RSA ist sicher, aber langsamer.
    • ED25519 bietet die gleiche Sicherheit mit nur 256 Bit – und ist dabei schneller!
  • Angriffe auf RSA werden wahrscheinlicher:
    • Fortschritte in der Quantencomputer-Technologie bedrohen RSA stärker als ED25519.
  • ED25519 ist schneller und sicherer:
    • ED25519-Schlüssel sind kürzer und benötigen weniger Rechenleistung für Signierung und Verifizierung.
    • Sie bieten besseren Schutz gegen Seitenkanalangriffe.

Fazit: ED25519 ist sicherer, schneller und effizienter als RSA – daher sollte man diesen Algorithmus bevorzugen.

SSH Key mit ED25519 generieren

Um einen neuen SSH Key mit dem modernen ED25519-Algorithmus zu erstellen, öffne das Terminal und gib ein:

ssh-keygen -t ed25519 -C "deine.email@example.com"
  • -t ed25519: Verwendet den ED25519-Algorithmus.
  • -C "deine.email@example.com": Setzt einen Kommentar zur Identifikation.

Danach wirst du gefragt, wo der Schlüssel gespeichert werden soll (Standard: ~/.ssh/id_ed25519). Falls bereits ein Schlüssel existiert, kannst du einen anderen Namen wählen, um ihn nicht zu überschreiben.

Zusätzlich kannst du eine Passphrase setzen, die den privaten Schlüssel schützt. Dies ist besonders nützlich, wenn dein Rechner kompromittiert wird.

SSH Key auf einem Server hinterlegen

Damit du dich ohne Passwort mit einem Server verbinden kannst, musst du den öffentlichen Schlüssel dorthin kopieren.

Methode 1: Automatisch mit ssh-copy-id

Falls du Zugriff per Passwort hast, kannst du deinen SSH Key einfach übertragen:

ssh-copy-id -i ~/.ssh/id_ed25519.pub benutzername@server-ip

Falls der Server SSH auf einem anderen Port als 22 nutzt:

ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2222 benutzername@server-ip

Danach kannst du dich ohne Passwort einloggen:

ssh benutzername@server-ip

Methode 2: Manuelles Kopieren

Falls ssh-copy-id nicht verfügbar ist, kannst du den Schlüssel auch manuell hinzufügen:

cat ~/.ssh/id_ed25519.pub

Kopiere den gesamten Inhalt und füge ihn auf dem Server in die Datei ~/.ssh/authorized_keys ein:

echo "DEIN_SSH_KEY" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys

Jetzt sollte die Anmeldung per SSH ohne Passwort funktionieren.

SSH Key bei GitHub oder GitLab hinterlegen

SSH Keys ermöglichen es, Git-Repositories sicher zu klonen und Änderungen zu pushen – ohne ständig Passwörter einzugeben.

Schritt 1: Öffentlichen Schlüssel anzeigen

Falls du deinen öffentlichen Schlüssel nicht kennst, kannst du ihn mit folgendem Befehl ausgeben:

cat ~/.ssh/id_ed25519.pub

Kopiere den gesamten Inhalt der Datei.

Schritt 2a: Schlüssel in GitHub hinterlegen

  1. Melde dich bei GitHub an
  2. Klicke auf dein Profil-Bild
    GitHub Oberfläche - Pfeil zeigt zum Profil
  3. Gehe zu Einstellungen.
    GitHub Oberfläche mit Pfeil der auf Settings zeigt
  4. Wähle den Menüpunkt SSH and GPG Keys
    GitHub Oberfläche mit Pfeil der auf "SSH und GPG keys" zeigt
  5. Klicke auf New SSH Key
    GitHub Oberfläche mit Pfeil der auf 'New SSH key' zeigt
  6. Vergebe einen möglichst genau beschreibenden Titel, füge den kopierten Schlüssel ein und speichere ihn.

Schritt 2b: Schlüssel in GitLab hinterlegen

  1. Melde dich bei GitLab an
  2. Klicke auf dein Profil-Bild und wähle PreferencesGitLab Oberfläche, zwei Pfeile zeigen auf das Profilbild und die Schaltfläche 'Preferences'
  3. Gehe zu SSH Keys und klicke auf Add new key
    GitLab Oberfläche, zwei Pfeile zeigen auf den Menüpunkt 'SSH Keys' und 'Add new key'
  4. Füge den kopierten Schlüssel in das Feld ein, vergib einen möglichst beschreibenden Titel und abspeichern.

Schritt 3: Verbindung testen

Um zu prüfen, ob die Authentifizierung mit SSH funktioniert, gib folgenden Befehl ein:

Für GitHub:

ssh -T git@github.com

Für GitLab:

ssh -T git@gitlab.com

Falls alles korrekt ist, bekommst du eine Meldung wie:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

Nun kannst du Git-Repositories per SSH klonen:

git clone git@github.com:username/repository.git

Oder Änderungen pushen, ohne ein Passwort eingeben zu müssen:

git push origin main

Fazit

SSH Keys sind eine sichere und komfortable Möglichkeit zur Authentifizierung. Wer bisher RSA-Schlüssel genutzt hat, sollte auf ED25519 umsteigen, da dieser Algorithmus sicherer, schneller und effizienter ist.

Zusammenfassung:

  • Erstellt werden ein privater und ein öffentlicher Schlüssel (.pub). Der private bleibt immer auf deinem Rechner!
  • ED25519 ist sicherer als RSA und benötigt weniger Rechenleistung
  • SSH Key mit ssh-keygen -t ed25519 erstellen
  • Auf Server mit ssh-copy-id oder manuell hinterlegen
  • Bei GitHub oder GitLab hinterlegen und testen

Falls du viel mit Servern oder Git arbeitest, lohnt sich die Einrichtung eines SSH Keys definitiv. Jetzt bist du dran! Nutzt du schon ED25519 oder brauchst du noch Hilfe? Schreib’s in die Kommentare!

Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert