Au secours j’ai verrouillé ma clef yubikey en me trompant 3 fois dans le code PIN !
Ce matin de retour de congés et pas très bien réveillé il m’a fallu plusieurs tentatives erronées pour comprendre qu’il me fallait saisir le code PIN de déverrouillage de ma clef yubikey.
Le temps de comprendre le mal est fait et le compteur de tentatives tombe à zéro.
Il m’est alors impossible de déverouiller ma clef et par conséquent d’utiliser pass
pour accéder à mes mots de passe.
Un retour de vacances qui commence bien, je me suis “enfermé dehors”. 😠
Comme quoi l’adage qui veut qu’il ne faille rien faire d’important avant le deuxième café est pertinent.
Je trouve assez vite comment réinitialiser la clef yubikey mais cela implique de supprimer toutes les clefs gpg présentes. Je vais éviter d’aggraver la situation.
En listant les informations de la carte on voit (quand on le sait) que le compteur de tentatives de saisie du PIN est tombé à zéro. Le deuxième champ est le nombre de tentatives restantes pour la saisie du code de reset de la carte et le dernier champ représente les tentatives restantes pour la saisie du code admin (ou PUK).
> gpg --card-status | grep -i 'pin retry counter'
PIN retry counter : 0 3 3
En utilisant d’autres mots clefs dans mes recherches je tombe sur les commandes du programme ykman
(yubikey manager).
C’est la sous-commande openpgp
qui m’intéresse.
J’ouvre un shell avec la commande : nix shell nixpkgs#yubikey-manager
.
Les infos retournées correspondent :
> ykman openpgp info
OpenPGP version: 2.0
Application version: 1.0.8
PIN tries remaining: 0
Reset code tries remaining: 3
Admin PIN tries remaining: 3
Require PIN for signature: Always
KDF enabled: False
Il me faut parfois enlever et insérer à nouveau la clef pour qu’elle soit reconnue. Peut-être un problème entre scd et l’agent gpg, mais je n’ai pas du tout cherché.
Je peux maintenant demander à positionner le compteur de tentatives de saisie du PIN.
> ykman openpgp access set-retries 3 3 3
Enter Admin PIN :
Sauf que je n’arrive pas à valider ma saisie !
Heureusement on peut passer tous les paramètres en ligne de commande :
> ykman openpgp access set-retries 3 3 3 --admin-pin XXXXXXXX --force
A noter que j’ajoute un espace au début de ma commande pour ne pas qu’elle soit enregistrée dans l’historique de mon shell zsh.
C’est assez pratique pour ce type de commande un peu sensible. (Ça me fait penser qu’il faudrait que j’installe atuin
…)
Je peux maintenant déverouiller ma clef et accéder à mes mots de passe !
Je vais pouvoir travailler, mais avant un autre café !