SSH Authentication with FIDO2

Compatible Nitrokeys

3A/C/Mini

Passkey

HSM 2

Pro 2

FIDO2

Storage 2

Start

U2F

active

active

inactive

inactive

active

inactive

inactive

inactive

Το SSH (Secure Shell) είναι ένα πρωτόκολλο δικτύου που χρησιμοποιείται για την ασφαλή πρόσβαση και διαχείριση απομακρυσμένων συστημάτων, όπως διακομιστές ή αποθετήρια κώδικα (π.χ. GitLab, GitHub). Χρησιμοποιεί κρυπτογραφικά ζεύγη κλειδιών για τον έλεγχο ταυτότητας, επιτρέποντας συνδέσεις χωρίς κωδικό πρόσβασης με ισχυρή ασφάλεια. Με ένα Nitrokey, το ιδιωτικό κλειδί SSH δημιουργείται και αποθηκεύεται απευθείας στη συσκευή, οπότε δεν φεύγει ποτέ από το υλικό. Κάθε σύνδεση απαιτεί να αγγίξετε το Nitrokey, προσθέτοντας μια απλή φυσική επιβεβαίωση που προστατεύει από μη εξουσιοδοτημένη πρόσβαση.

Generating SSH Key

  1. Insert the Nitrokey into your computer.

  2. Ανοίξτε ένα τερματικό και δημιουργήστε το κλειδί SSH. Αντικαταστήστε το "your_comment" με μια ετικέτα για την αναγνώρισή του (π.χ. «Nitrokey GitLab»). Από προεπιλογή, το κλειδί είναι ένα μη μόνιμο κλειδί, που σημαίνει ότι μια τοπική λαβή κλειδιού αποθηκεύεται στο ~/.ssh/ ενώ το ιδιωτικό κλειδί παραμένει με ασφάλεια στο Nitrokey. Χρησιμοποιήστε την επιλογή -O resident αν θέλετε το κλειδί να είναι φορητό σε όλα τα συστήματα.

    ssh-keygen -t ed25519-sk -C "your_comment"
    

    ή για να δημιουργήσετε ένα κλειδί κατοίκου

    ssh-keygen -t ed25519-sk -O resident -C "your_comment"
    

    Σημείωση

    Τα μόνιμα κλειδιά μπορούν αργότερα να καταχωρηθούν και να εισαχθούν σε άλλο σύστημα με:

    ssh-keygen -K
    
  3. Κατά τη διάρκεια της δημιουργίας κλειδιού, μπορεί επίσης να σας ζητηθεί να ορίσετε μια συνθηματική φράση **** . Αυτή η συνθηματική φράση κρυπτογραφεί το τοπικό κλειδί που είναι αποθηκευμένο στο ~/.ssh/ (όχι το ιδιωτικό κλειδί στο Nitrokey, το οποίο παραμένει πάντα με ασφάλεια μέσα στη συσκευή). Η συνθηματική φράση είναι διαφορετική από το PIN της συσκευής FIDO2. Το PIN προστατεύει το ίδιο το φυσικό κλειδί, ενώ η συνθηματική φράση προστατεύει το τοπικό αρχείο δημόσιου κλειδιού SSH. Συνιστούμε να χρησιμοποιείτε μια συνθηματική φράση μόνο για την προστασία μη μόνιμων κλειδιών.

  4. Όταν σας ζητείται η διαδρομή του αρχείου, αποδεχτείτε την προεπιλεγμένη επιλογή (~/.ssh/id_ed25519_sk) ή επιλέξτε ένα προσαρμοσμένο όνομα όπως id_ed25519_sk_gitlab.

  5. Εάν το Nitrokey αναβοσβήνει, επιβεβαιώστε τη λειτουργία αγγίζοντάς το.

Τελικά θα δημιουργηθούν τα ακόλουθα αρχεία. Τα ονόματα των αρχείων ενδέχεται να διαφέρουν, εάν έχετε καθορίσει ένα προσαρμοσμένο όνομα κατά τη δημιουργία του κλειδιού.

~/.ssh/id_ed25519_sk → λαβή για το ιδιωτικό κλειδί (αποθηκεύεται με ασφάλεια στο Nitrokey)

~/.ssh/id_ed25519_sk.pub → αρχείο δημόσιου κλειδιού

img0

Adding Your Public Key

Μόλις δημιουργηθεί το ζεύγος κλειδιών SSH, το δημόσιο κλειδί πρέπει να προστεθεί στην υπηρεσία ή το διακομιστή στον οποίο θέλετε να αποκτήσετε πρόσβαση.

  1. Display your public key:

    cat ~/.ssh/id_ed25519_sk.pub
    

    Παράδειγμα εξόδου (μην χρησιμοποιείτε αυτό το πλήκτρο):

    sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG7wZW4zc2guY29tAAAAILeZl6r07HV4i1rK07OfLqD3J4IzX2q0lB6Ok0pdxoG5AAAABHNzaDo= your_comment
    
  2. Αντιγράψτε το αποτέλεσμα και προσθέστε το στις ρυθμίσεις κλειδιού SSH του λογαριασμού σας. Ανατρέξτε στο GitLab <https://docs.gitlab.com/user/ssh/#add-an-ssh-key-to-your-gitlab-account> ή στο GitHub <https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account> για λεπτομερή βήματα. Για να ενεργοποιήσετε την απομακρυσμένη πρόσβαση στον διακομιστή SSH, προσθέστε το δημόσιο κλειδί σας στο αρχείο ~/.ssh/authorized_keys του λογαριασμού χρήστη σας στον διακομιστή SSH.