SSH#
✓ |
⨯ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
This guide explains how to prepare your SSH server and client for use with the Nitrokey. For configuring PuTTY, see this guide:
Les clés PGP doivent déjà être installées sur la Nitrokey et le trousseau de clés GnuPG local doit connaître ces clés.
Préparation sur le client#
Assurez-vous que ~/.gnupg/gpg.conf contient “use-agent” ;
Ajouter le support ssh à gnupg-agent en ajoutant “enable-ssh-support” ; à ~/.gnupg/gpg-agent.conf
Si le fichier n’existe pas encore, vous pouvez simplement le créer.
Ajoutez le code suivant quelque part dans votre ~/.bashrc (pour le shell poisson, regardez ici)
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
Il suffit de redémarrer votre système ou d’essayer
pkill gpg-agent
et d’ouvrir une nouvelle ligne de commande pour s’assurer que tout est paramétréEn cas de problème, essayez
gpg2 --card-status
lors de la première utilisation pour vous assurer que l’agent gpg est lancé.
Préparation du serveur#
Vous pouvez générer un fichier authorized_keys en exécutant soit
gpg2 --export-ssh-key keyID >> ~/authorized_keys
où
keyID
est l’identifiant de la sous-clé utilisée pour l’authentification sur votre Nitrokey. La Nitrokey doit déjà être connue du trousseau de clés GnuPG local. Vous pouvez maintenant ajouter ce fichier aux authorized_keys d’un serveur distant et lorsque vous vous connecterez au serveur par ssh, on vous demandera un pin plutôt qu’une phrase de passe.
Dépannage#
Si l’on vous demande toujours un mot de passe, assurez-vous que
echo $SSH_AUTH_SOCK
renvoie quelque chose comme “/run/user/1000/gnupg/S.gpg-agent.ssh” ; ou “/home/nom d’utilisateur/.gnupg/.S.gpg-agent.ssh” ;. Malheureusement, il y a eu quelques changements dans GnuPG dans le passé, de sorte que le contenu réel peut différer selon le système et la version de GnuPG. Sur certains systèmes, il peut même y avoir plusieurs dossiers dans cette variable enregistrée. Vous devez adapter le code ci-dessus dans .bashrc afin que la variable SSH_AUTH_SOCK soit correcte. En cas de doute, recherchez “SSH_AUTH_SOCK” ; dans le fichier
man gpg-agent
pour trouver le code réel pour votre version/système.
Vous pouvez vérifier si vous avez un programme “pinentry” ; installé via votre gestionnaire de paquets. Vous devrez peut-être le définir dans le fichier gpg-agent.conf également. Vous pouvez avoir besoin de pointer gpg-agent vers le bon TTY.