
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.
Dieses Video wird über eine externe Plattform (YouTube) gehostet. Das Laden bedarf der Zustimmung unserer Datenschutzbestimmungen.
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:
-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:
Falls ssh-copy-id
nicht verfügbar ist, kannst du den Schlüssel auch manuell hinzufügen:
Kopiere den gesamten Inhalt und füge ihn auf dem Server in die Datei ~/.ssh/authorized_keys
ein:
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:
Schritt 2a: Schlüssel in GitHub hinterlegen
- Melde dich bei GitHub an
- Klicke auf dein Profil-Bild
- Gehe zu Einstellungen.
- Wähle den Menüpunkt SSH and GPG Keys
- Klicke auf New SSH Key
- Vergebe einen möglichst genau beschreibenden Titel, füge den kopierten Schlüssel ein und speichere ihn.
Schritt 2b: Schlüssel in GitLab hinterlegen
- Melde dich bei GitLab an
- Klicke auf dein Profil-Bild und wähle Preferences
- Gehe zu SSH Keys und klicke auf Add new key
- 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:
Für GitLab:
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!