Estou procurando armazenar em cache senhas para uso em uma máquina autônoma. Como isso representa algum risco, eu prefiro escolher quais senhas são armazenadas em cache e evitar definir valores altos default-cache-ttl
e max-cache-ttl
desagradáveis, além de evitar a necessidade de limpar gpg-agent
todo o cache periodicamente - por isso estou procurando uma solução gpg-preset-passphrase
. Algumas das informações que encontrei durante a solução de problemas referem-se a versões mais antigas do GnuPG, portanto, não tenho certeza se expliquei suficientemente todas as diferenças.
Primeiro, como prescrito por man 1 gpg-agent
, eu tenho export GPG_TTY=$(tty)
no meu .bashrc.
Agora, suponha que eu corra eval $(gpg-agent --daemon --allow-preset-passphrase --default-cache-ttl 1 --max-cache-ttl 31536000)
para iniciar o gpg-agent, observando que a gpg-preset-passphrase ainda honra --max-cache-ttl (padrão 2 horas).
Em seguida, recebo o aperto $KEYGRIP
de tecla da subchave secreta desejada com gpg --with-keygrip -K
.
Com isso eu tento /path/to/gpg-preset-passphrase -c $KEYGRIP
. Ao retornar, isso imprime:
gpg-preset-passphrase: caching passphrase failed: Not implemented
Tentando novamente acrescentando --verbose --debug 6 --log-file /path/to/gpg-agent.log
que gpg-agent
, meu log é anexado com
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
Não tenho certeza de onde proceder disso além de mergulhar mais fundo na fonte, por isso estou me perguntando se alguém pode primeiro corrigir os passos que estou tomando.
gpg-preset-passphrase
, minha primeira pista concreta é a partir desta lista de discussão.gnupg.org/ pipermailRespostas:
Eu também tenho esse problema e resolvi adicionando a configuração ao gpg-agent, você pode encontrá-lo aqui:
/programming/49491679/how-to-enter-gnupg-agent-key-passhprase-from-cli
fonte
Parece que você deseja enviar a senha para
gpg-preset-passphrase
over stdin, sem repeti-la (para evitar a exposição na lista de processos):Se você se preocupa com a portabilidade fora do bash:
Esta resposta sobre a sintaxe "Aqui Documentos" (EOF) foi inestimável para mim: https://unix.stackexchange.com/a/88492
Você também precisa
allow-preset-passphrase
,~/.gnupg/gpg-agent.conf
conforme mencionado por holms.Se você deseja fazer isso com criptografia simétrica (já que eu já perdi minha sanidade, talvez você não precise), veja minha resposta aqui, encontrando o keygrip / cacheid certo para usar para predefinir a senha em gpg- agente: https://superuser.com/a/1485486/1093343
fonte