Je cherche à mettre en cache les mots de passe pour une utilisation sur une machine sans surveillance. Comme cela pose un certain risque, je préférerais choisir les phrases secrètes à mettre en cache et éviter de définir les deux default-cache-ttl
et max-cache-ttl
des valeurs odieusement élevées ainsi que d'éviter d'avoir à effacer gpg-agent
le cache entier de façon périodique - c'est pourquoi je cherche une solution avec gpg-preset-passphrase
. Certaines des informations que j'ai trouvées lors du dépannage se réfèrent à des versions plus anciennes de GnuPG, donc je ne sais pas si j'ai suffisamment pris en compte toutes les différences.
Tout d'abord, comme prescrit par man 1 gpg-agent
, j'ai export GPG_TTY=$(tty)
dans mon .bashrc.
Supposons maintenant que je cours eval $(gpg-agent --daemon --allow-preset-passphrase --default-cache-ttl 1 --max-cache-ttl 31536000)
pour démarrer gpg-agent, notant que gpg-preset-passphrase honore toujours --max-cache-ttl (par défaut 2 heures).
J'obtiens ensuite le clavier $KEYGRIP
de la sous-clé secrète souhaitée avec gpg --with-keygrip -K
.
Avec ça j'essaye /path/to/gpg-preset-passphrase -c $KEYGRIP
. Au retour, ceci imprime:
gpg-preset-passphrase: caching passphrase failed: Not implemented
Tentant à nouveau d'ajouter --verbose --debug 6 --log-file /path/to/gpg-agent.log
à gpg-agent
, mon journal est accompagné de
gpg-agent[4206] listening on socket /run/user/1000/gnupg/S.gpg-agent
gpg-agent[4207] gpg-agent (GnuPG) 2.1.15 started
gpg-agent[4207] handler 0x7f86ef783700 for fd 5 started
gpg-agent[4207] command PRESET_PASSPHRASE failed: Not implemented
gpg-agent[4207] handler 0x7f86ef783700 for fd 5 terminated
Je ne sais pas où procéder en dehors de plonger plus profondément dans la source, alors je me demande si quelqu'un peut d'abord corriger les étapes que je prends.
gpg-preset-passphrase
, ma première piste concrète à partir de cette liste de diffusion lists.gnupg.org/pipermail/gnupg-users/2010-January/037876.htmlRéponses:
J'ai également ce problème et j'ai résolu en ajoutant la configuration à gpg-agent, vous pouvez le trouver ici:
/programming/49491679/how-to-enter-gnupg-agent-key-passhprase-from-cli
la source
Il semble que vous souhaitiez envoyer la phrase secrète
gpg-preset-passphrase
sur stdin, sans l' écho (pour éviter de l'exposer dans la liste des processus):Si vous vous souciez de la portabilité en dehors de bash:
Cette réponse sur la syntaxe "Here Documents" (EOF) a été inestimable pour moi: https://unix.stackexchange.com/a/88492
Vous avez également besoin
allow-preset-passphrase
de votre~/.gnupg/gpg-agent.conf
comme mentionné par Holms.Si vous cherchez à le faire avec un cryptage symétrique (puisque j'ai déjà perdu ma raison à ce sujet, vous n'aurez peut-être pas à le faire), voyez ma réponse ici pour trouver le bon keygrip / cacheid à utiliser pour prérégler la phrase de passe dans gpg- agent: https://superuser.com/a/1485486/1093343
la source