SSH Authentication with FIDO2¶
Compatible Nitrokeys |
|||||||
|---|---|---|---|---|---|---|---|
✓ active |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
⨯ inactive |
⨯ inactive |
⨯ inactive |
SSH (Secure Shell) ist ein Netzwerkprotokoll für den sicheren Zugriff auf und die Verwaltung von entfernten Systemen wie Servern oder Code-Repositories (z. B. GitLab, GitHub). Es verwendet kryptografische Schlüsselpaare zur Authentifizierung und ermöglicht passwortlose Anmeldungen mit hoher Sicherheit. Mit einem Nitrokey wird der private SSH-Schlüssel direkt auf dem Gerät erzeugt und gespeichert, so dass er die Hardware nie verlässt. Bei jeder Anmeldung müssen Sie den Nitrokey berühren, was eine einfache physische Bestätigung darstellt, die vor unbefugtem Zugriff schützt.
Generating SSH Key¶
Insert the Nitrokey into your computer.
Öffnen Sie ein Terminal und erstellen Sie Ihren SSH-Schlüssel. Ersetzen Sie
"your_comment"durch eine Bezeichnung, um ihn zu identifizieren (z. B. „Nitrokey GitLab“). Standardmäßig ist der Schlüssel ein nicht-ortsgebundener Schlüssel, d. h. ein lokales Schlüsselhandle wird in~/.ssh/gespeichert, während der private Schlüssel sicher auf dem Nitrokey bleibt. Verwenden Sie die Option-O resident, wenn Sie möchten, dass der Schlüssel systemübergreifend portabel ist.ssh-keygen -t ed25519-sk -C "your_comment"oder um einen residenten Schlüssel zu erstellen
ssh-keygen -t ed25519-sk -O resident -C "your_comment"Bemerkung
Residente Schlüssel können später aufgelistet und auf einem anderen System mit importiert werden:
ssh-keygen -KWährend der Schlüsselgenerierung werden Sie möglicherweise auch aufgefordert, eine Passphrase festzulegen. Diese Passphrase verschlüsselt den lokalen Schlüsselhandle, der in
~/.ssh/gespeichert ist (nicht den privaten Schlüssel auf dem Nitrokey, der immer sicher im Gerät bleibt). Die Passphrase unterscheidet sich von der FIDO2-Geräte-PIN. Die PIN schützt den physischen Schlüssel selbst, während die Passphrase Ihre lokale öffentliche SSH-Schlüsseldatei schützt. Wir empfehlen die Verwendung einer Passphrase nur zum Schutz von nicht-residenten Schlüsseln.Wenn Sie nach einem Dateipfad gefragt werden, akzeptieren Sie die Standardoption (
~/.ssh/id_ed25519_sk) oder wählen Sie einen eigenen Namen wieid_ed25519_sk_gitlab.Wenn der Nitrokey blinkt, bestätigen Sie den Vorgang, indem Sie ihn berühren.
Schließlich werden die folgenden Dateien erstellt. Die Dateinamen können abweichen, wenn Sie bei der Erstellung des Schlüssels einen eigenen Namen angegeben haben.
~/.ssh/id_ed25519_sk → Handle zum privaten Schlüssel (sicher auf dem Nitrokey gespeichert)
~/.ssh/id_ed25519_sk.pub → Datei mit öffentlichem Schlüssel
Adding Your Public Key¶
Sobald Ihr SSH-Schlüsselpaar erzeugt ist, muss der öffentliche Schlüssel zu dem Dienst oder Server hinzugefügt werden, auf den Sie zugreifen möchten.
Display your public key:
cat ~/.ssh/id_ed25519_sk.pubBeispielausgabe (diese Taste nicht verwenden):
sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG7wZW4zc2guY29tAAAAILeZl6r07HV4i1rK07OfLqD3J4IzX2q0lB6Ok0pdxoG5AAAABHNzaDo= your_comment
Kopieren Sie die Ausgabe und fügen Sie sie zu den SSH-Schlüsseleinstellungen Ihres Kontos hinzu. Detaillierte Schritte finden Sie unter GitLab <https://docs.gitlab.com/user/ssh/#add-an-ssh-key-to-your-gitlab-account> oder GitHub <https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account>. Um den SSH-Fernzugriff auf den Server zu aktivieren, fügen Sie Ihren öffentlichen Schlüssel in die Datei
~/.ssh/authorized_keysIhres Benutzerkontos auf dem SSH-Server ein.