ssh-agent
é muito fácil de usar, eu inicio e adiciono chaves usando ssh-add keyfile
. Depois de encerrar o processo ssh-agent
, todos os arquivos desaparecem.
Como posso obter o mesmo comportamento gpg-agent
? O programa mais próximo que encontrei foi gpg-preset-passphrase
. Mas, olhando a página de manualgpg-agent
, parece que um diretório foi criado para armazenar chaves privadas.
Eu posso estar errado, então estou me perguntando como posso configurar gpg-agent
de tal maneira que nenhum arquivo / diretório seja criado? Se não for possível, outras sugestões para fazer o gpg-agent
trabalho como ssh-agent
+ ssh-add
também serão bem-vindas. Não estou procurando soluções de GUI como o Seahorse.
gpg-connect-agent
?gpg-preset-passphrase
. Eu corrigpg-connect-agent
, peguei um shell e executeisetkey IDOFMYPRIVATEKEYHERE
seguido porpreset_passphrase
e o id resultou em "ERR 67108924 <GPG-agent> não suportado - sem - senha permitida predefinida"Respostas:
Decidi dar uma olhada nisso novamente e descobri como funciona. O GPG usa a terminologia "cache" para armazenar senhas. Duas restrições podem ser impostas ao tempo máximo de armazenamento:
Além disso, existem duas variações para as duas restrições, uma para chaves GPG e outra para chaves SSH (se o suporte estiver ativado).
As entradas relevantes da página de manual de
gpg-agent(1)
:As senhas são sempre armazenadas em cache (na memória, não no disco! Verificadas com um repositório git de
$HOME
), portanto, não há necessidade explícitassh-add
. Por exemplo, a assinatura de dados fictícios já aciona o cache:Para fazer alterações permanentes nas configurações de cache do gpg-agent, edite ~ / .gnupg / gpg-agent.conf` e adicione algo como:
Tentei ativar o suporte ao agente SSH especificando
enable-ssh-support
, mas isso faz com que o gpg-agent solicite outra chave para criptografar a chave e, em seguida, armazene sua chave privada~/.gnupg/private-keys.d/
. Não vá para mim, vou seguir uma abordagem dupla ssh-agent / gpg-agent.Algumas dicas de bônus:
max-cache-ttl-ssh
pode ser especificado ao adicionar a chave, por exemplo:ssh-add -t 600 ~/.ssh/id_rsa
Para impedir o armazenamento da senha do GPG no agente, desative o agente. Nas versões mais recentes do GPG, a opção
--no-use-agent
é ignorada, mas você pode impedir que o agente seja usado limpando a variável de ambiente relacionada. Algumas maneiras de fazer isso:fonte
gpg-agent
ativo? (Verifique a lista de processos, por exemplo, comps u -C gpg-agent
). O tempo limite do cache está definido adequadamente? Se você usá-lo para assinar (em oposição à autenticação (SSH)), aignore-cache-for-signing
opção está desmarcada?