SSH#
✓ |
⨯ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
This guide explains how to prepare your SSH server and client for use with the Nitrokey. For configuring PuTTY, see this guide:
Nitrokey dovrebbe avere già installato le chiavi PGP e il portachiavi GnuPG locale dovrebbe conoscere le chiavi.
Preparazione sul cliente#
Assicurarsi che ~/.gnupg/gpg.conf contenga “use-agent”
Aggiungere il supporto ssh a gnupg-agent aggiungendo “enable-ssh-support” a ~/.gnupg/gpg-agent.conf
Se il file non esiste ancora, è sufficiente crearlo.
Aggiungete il seguente codice da qualche parte nel vostro ~/.bashrc (per la fish shell, cercate qui)
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
Basta riavviare il sistema o provare
pkill gpg-agent
e aprire una nuova riga di comando per assicurarsi che tutto sia impostatoIn caso di problemi, provare
gpg2 --card-status
al primo utilizzo, per assicurarsi che gpg-agent venga avviato.
Preparazione del server#
Si può generare un file authorized_keys eseguendo
gpg2 --export-ssh-key keyID >> ~/authorized_keys
dove
keyID
è l’id della sottochiave usata per l’autenticazione sulla vostra Nitrokey. La Nitrokey deve essere già nota al portachiavi locale di GnuPG. Ora potete aggiungere quel file a un server remoto e quando vi connetterete al server vi verrà chiesto un pin piuttosto che una passphrase.
Risoluzione dei problemi#
Se vi viene ancora richiesta una password, accertatevi che
echo $SSH_AUTH_SOCK
restituisce qualcosa come “/run/user/1000/gnupg/S.gpg-agent.ssh” o “/home/username/.gnupg/.S.gpg-agent.ssh”. Purtroppo in passato sono state apportate alcune modifiche a GnuPG, per cui il contenuto effettivo può variare a seconda del sistema e della versione di GnuPG. Su alcuni sistemi possono esserci anche più cartelle in questa variabile salvata. È necessario adattare il codice sopra riportato in .bashrc in modo che la variabile SSH_AUTH_SOCK sia corretta. In caso di dubbio, cercare “SSH_AUTH_SOCK” in
man gpg-agent
per trovare il codice effettivo per la vostra versione/sistema.
È possibile verificare se è stato installato un programma “pinentry” tramite il proprio gestore di pacchetti. Potrebbe essere necessario ` impostarlo anche nel file gpg-agent.conf <https://wiki.archlinux.org/index.php/GnuPG#pinentry>`__. Potrebbe essere necessario ` puntare gpg-agent alla TTY corretta <https://wiki.archlinux.org/index.php/GnuPG#Configure_pinentry_to_use_the_correct_TTY>`__.