Preciso estender a data de validade de uma chave GPG, mas todas as respostas ou artigos que posso encontrar fazem isso de forma interativa, por exemplo . Eu preciso incorporar a lógica em um script de shell, então me pergunto como posso fazer isso de forma não interativa?
relate perguntas
-
gpg2 executando excessivamente lento, apenas quando o agente não tem senha armazenada em cache
-
Login automático GPG com pam, pinentry
-
Como posso verificar uma chave secreta gpg que exportei para fins de backup?
-
gpg-agent: um gpg-agent já está em execução - não está iniciando um novo
-
Por que o Keybase não inclui minha impressão digital de chave PGP pública em minha prova do GitHub?
Suponha que você tenha sua chave
[email protected]
e sua senha para essa chave esteja armazenada no arquivopassphrase.txt
, o seguinte comando alterará a data de expiração de forma não interativa:(Se não funcionar devido à invocação de pinentry, consulte a NOTA abaixo.)
Breve explicação do comando:
printf "expire\n10w\nsave\n"
envia esses comandos para gpg.expire
altera a data de validade da chave,10w
é de 10 semanas,save
é óbvio.--batch
diz que não haverá entrada do usuário--pinentry-mode loopback
permite canalizar arquivo de frase secreta para gpg (veja abaixo)--passphrase-fd 3
diz que o descritor de arquivo3
é onde o gpg deve procurar a frase secreta (observe3<passphrase.txt
no final do comando.--command-fd 0
diz que o descritor de arquivo0
(ou STDIN) é de onde o gpg deve originar os--batch
comandos (printf
parte no início do comando).--status-fd 2
diz que o status vai para2
(ou STDOUT), você pode querer direcionar isso para log.--edit-key [email protected]
é a chave que queremos editarEsta resposta deve lhe dar uma boa ideia de como "automatizar" as coisas com o gpg. Para fazer isso completo, você provavelmente deseja alterar a expiração da subchave de criptografia, etc.
NOTA: As versões atuais do GnuPG não permitem canalizar senhas facilmente (elas são padronizadas para gpg-agent e o programa chamado
pinentry
). Por uma questão de simplicidade, habilitei a frase secreta adicionandoallow-loopback-pinentry
ao meu arquivogpg-agent.conf
. Observe que isso não é seguro e você provavelmente deseja implementar o seu própriopinentry
(ou usar o existente que se adapte ao seu fluxo de trabalho não interativo) e, em seguida, defini-lo emgpg-agent.conf