Quali sono i passaggi necessari per memorizzare nella cache le passphrase inserite tramite pinentry usando gpg-preset-passphrase in 2.1.15?


8

Sto cercando di memorizzare le passphrase per l'uso su una macchina automatica. Dato che ciò comporta un certo rischio, preferirei scegliere quali passphrase vengono memorizzate nella cache ed evitare di impostare entrambi default-cache-ttle max-cache-ttlvalori odiosamente alti, oltre a evitare la necessità di svuotare gpg-agentperiodicamente l'intera cache, quindi sto cercando una soluzione gpg-preset-passphrase. Alcune delle informazioni che ho trovato durante la risoluzione dei problemi si riferiscono a versioni precedenti di GnuPG, quindi non sono sicuro di aver tenuto sufficientemente conto di tutte le differenze.

In primo luogo, come prescritto da man 1 gpg-agent, ho export GPG_TTY=$(tty)nel mio .bashrc.

Ora supponiamo che corro eval $(gpg-agent --daemon --allow-preset-passphrase --default-cache-ttl 1 --max-cache-ttl 31536000)per avviare gpg-agent, notando che gpg-preset-passphrase onora ancora --max-cache-ttl (predefinito 2 ore).

Quindi ottengo il keygrip $KEYGRIPdella sottochiave segreta desiderata con gpg --with-keygrip -K.

Con quello ci provo /path/to/gpg-preset-passphrase -c $KEYGRIP. Al colpire il ritorno, questo stampa:

   gpg-preset-passphrase: caching passphrase failed: Not implemented

Tentando di nuovo aggiungendo --verbose --debug 6 --log-file /path/to/gpg-agent.loga gpg-agent, il mio registro viene aggiunto con

   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

Non sono sicuro di dove procedere oltre a immergermi più in profondità nella fonte, quindi mi chiedo se qualcuno può prima correggere i passi che sto facendo.


L'hai mai risolto?
AlMehdi,

Sto marginalmente che la passphrase deve essere inviato a stdin di gpg-preset-passphrase, il mio primo vantaggio concreto sul da questa mailing list lists.gnupg.org/pipermail/gnupg-users/2010-January/037876.html
ThorSummoner

come inviarlo da stdin, invece di eco? questo non sembra affatto sicuro
holms

Risposte:



0

Sembra che tu voglia inviare la passphrase a gpg-preset-passphraseover stdin, senza fare eco (per evitare di esporla nella lista dei processi):

/path/to/gpg-preset-passphrase -c $KEYGRIP <<< $PASSPHRASE

Se ti interessa la portabilità al di fuori di bash:

/path/to/gpg-preset-passphrase -c $KEYGRIP <<EOF
$PASSPHRASE
EOF

Questa risposta sulla sintassi "Here Documents" (EOF) è stata preziosa per me: https://unix.stackexchange.com/a/88492

Hai anche bisogno allow-preset-passphrasenel tuo, ~/.gnupg/gpg-agent.confcome menzionato da holms.

Se stai cercando di farlo con la crittografia simmetrica (dal momento che ho già perso la sanità mentale per questo, forse non dovrai farlo), vedi la mia risposta qui che trova il giusto keygrip / cacheid da usare per preimpostare la passphrase in gpg- agente: https://superuser.com/a/1485486/1093343

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.