SSH#
✓ |
⨯ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
This guide explains how to prepare your SSH server and client for use with the Nitrokey. For configuring PuTTY, see this guide:
Το 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.