SSH για τη διαχείριση διακομιστών#

Αυτός ο οδηγός εξηγεί πώς να προετοιμάσετε το διακομιστή και τον πελάτη SSH για χρήση με το Nitrokey.

Το Nitrokey θα πρέπει να έχει ήδη εγκατεστημένα κλειδιά PGP και η τοπική κλειδοθήκη GnuPG θα πρέπει να γνωρίζει τα κλειδιά.

Προετοιμασία για τον πελάτη#

  • Βεβαιωθείτε ότι το ~/.gnupg/gpg.conf περιέχει το “use-agent”,

  • Προσθέστε υποστήριξη ssh στον gnupg-agent προσθέτοντας το “enable-ssh-support” στο ~/.gnupg/gpg-agent.conf

  • Αν το αρχείο δεν υπάρχει ακόμη, μπορείτε απλώς να το δημιουργήσετε.

  • Προσθέστε τον ακόλουθο κώδικα κάπου στο αρχείο ~/.bashrc (για το κέλυφος των ψαριών, κοιτάξτε εδώ)

unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
  • Απλά επανεκκινήστε το σύστημά σας ή δοκιμάστε pkill gpg-agent και ανοίξτε μια νέα γραμμή εντολών για να βεβαιωθείτε ότι όλα είναι ρυθμισμένα.

  • Σε περίπτωση προβλημάτων, δοκιμάστε gpg2 --card-status κατά την πρώτη χρήση για να βεβαιωθείτε ότι ο gpg-agent θα ξεκινήσει.

Προετοιμασία για τον διακομιστή#

Μπορείτε να δημιουργήσετε ένα αρχείο authorized_keys εκτελώντας είτε

gpg2 --export-ssh-key keyID >> ~/authorized_keys

όπου

keyID

είναι το αναγνωριστικό υποκλειδιού που χρησιμοποιείται για τον έλεγχο ταυτότητας στο Nitrokey σας. Το Nitrokey πρέπει να είναι ήδη γνωστό στην τοπική κλειδοθήκη GnuPG. Μπορείτε τώρα να προσαρτήσετε αυτό το αρχείο σε έναν απομακρυσμένο διακομιστή’s authorized_keys και όταν κάνετε ssh στον διακομιστή θα σας ζητηθεί ένα pin αντί για μια φράση πρόσβασης.

Αντιμετώπιση προβλημάτων#

Εάν σας ζητείται ακόμη κωδικός πρόσβασης, βεβαιωθείτε ότι

echo $SSH_AUTH_SOCK

επιστρέφει κάτι σαν “/run/user/1000/gnupg/S.gpg-agent.ssh” ή “/home/username/.gnupg/.S.gpg-agent.ssh”. Δυστυχώς υπήρξαν κάποιες αλλαγές στο GnuPG στο παρελθόν, έτσι ώστε το πραγματικό περιεχόμενο μπορεί να διαφέρει ανάλογα με το σύστημα και την έκδοση του GnuPG. Σε ορισμένα συστήματα μπορεί να υπάρχουν ακόμη και πολλαπλοί φάκελοι σε αυτή τη μεταβλητή αποθηκευμένοι. Θα πρέπει να προσαρμόσετε τον παραπάνω κώδικα στο .bashrc έτσι ώστε η μεταβλητή SSH_AUTH_SOCK να είναι σωστή. Σε περίπτωση αμφιβολίας αναζητήστε το “SSH_AUTH_SOCK” στο

man gpg-agent

για να βρείτε τον πραγματικό κώδικα για την έκδοση/το σύστημά σας.

Μπορείτε να ελέγξετε αν έχετε εγκαταστήσει ένα πρόγραμμα “pinentry” μέσω του διαχειριστή πακέτων σας. Ίσως χρειαστεί να το ορίσετε και στο αρχείο gpg-agent.conf. Ίσως χρειαστεί να στρέψετε το gpg-agent στο σωστό TTY.