(Entendo as implicações de segurança a seguir e estou bem com elas.)
Eu tenho um único arquivo criptografado no meu diretório organizacional diary.org.gpg
,. Eu nunca fiz nenhuma configuração especial para funcionar, ainda
- Sempre que visito o arquivo, sou solicitada a senha de criptografia. O que é ótimo.
- Sempre que eu salvo o buffer, a senha é solicitada novamente duas vezes. Qual é o meu problema ?
Observe que eu não configurei nada para que isso funcione; portanto, quaisquer respostas relacionadas a agentes ou chaveiros deverão vir com instruções de configuração.
Pensei em manter a senha escrita em algum lugar dentro do arquivo (no cabeçalho ou nos comentários no final do arquivo). Então, sempre que eu salvar, o Emacs pode ler a senha no buffer e usá-la em vez de me avisar. Mas quando comecei a investigar isso, me perdi completamente em algum lugar por dentro epa.el
.
P: Como posso enviar uma senha diretamente do Emacs para o sistema / processo de criptografia ao salvar o buffer, em vez de ser solicitado?
Todo o resto (encontrando a senha no buffer), eu mesmo consigo descobrir. Eu me perdi ao tentar entender como o Emacs fazia interface com o gpg.
Observe que estou no Ubuntu, Arch Linux e Windows. É por isso que minha primeira ideia foi uma solução centrada no emacs.
Posso viver com uma solução que não funciona no Windows, desde que eu ainda possa acessar o arquivo nele da maneira manual.
fonte
gpg-agent
é que ele é semelhante assh-agent
apenas armazenar as senhas que você possui, depois de ativá-las. Portanto, você não será solicitado a senha nem quando abrir um arquivo, nem quando salvá-lo (desde que o agente se lembre da senha), mas não acho que isso se estenda à frase secreta, que é meio idiota , se for verdade.gpg-agent
corretamente, para que ela armazene em cache a chave por um tempo? :)Respostas:
Criptografia usando senha + chave
Isso não salva a senha diretamente no arquivo, mas faz algo semelhante sem nenhum risco à segurança e ajuda você a alcançar o que deseja.
Você precisa usar criptografia assimétrica para que sua senha seja associada a um ID de email em um chaveiro .
Salve o abaixo na parte superior do seu arquivo .gpg
A senha é solicitada na primeira vez em que o arquivo é salvo / criado. Mas depois disso, a senha é solicitada apenas uma vez cada vez que você abre o arquivo salvo
O único problema é que você não deve perder o arquivo do chaveiro salvo
~/.gnupg/
por padrão.Configuração GPG
Configuração do Emacs
Nenhuma configuração é necessária para isso no emacs.
Configuração do sistema
Mas você precisa ter seu ambiente de sistema pronto com poucas bibliotecas para que o recurso GPG funcione.
No momento da configuração, tive que instalar o seguinte:
Eu precisava de uma ou duas das bibliotecas acima e acabei instalando as outras porque eram dependências obrigatórias ou opcionais.
Depois que tudo estiver instalado, faça
Gere uma chave que nunca expira e associe-a ao seu nome e e-mail reais.
A chave gerada será salva no seu
~/.gnupg/
diretório.Alterando a localização do chaveiro
Você pode alterar a localização do chaveiro, alterando
$GNUPGHOME
, usando--homedir
ou as--keyring
opções paragpg
.De
man gpg
:Usando GPG com emacs
No emacs, você simplesmente cria um arquivo com uma
.gpg
extensão. Por exemplo, se o arquivo era originalmenteauth.el
, você o renomeia paraauth.el.gpg
.Coloque esta linha na parte superior do arquivo:
Observe que eu usei os caracteres de comentário elisp
;;
como o arquivo de exemplo aqui éauth.el.gpg
.Use o endereço de email exato que você usou no momento da geração da chave.
Quando você tenta salvá-lo, o emacs mostrará esse prompt em um buffer:
Navegue o ponto até a linha que contém a tecla, pressione
m
.Navegue até o
[OK]
botão e aperte<return>
.Agora você pode salvar o arquivo e matar esse buffer de arquivo.
Na próxima vez em que você abrir esse arquivo .gpg, a senha será solicitada apenas uma vez e, em seguida, os salvamentos consecutivos serão livres de solicitação de senha.
Mais informações
fonte
Acontece que tudo que eu tinha que fazer era
Essa solução funciona no Linux e no Windows e é uma cortesia de Ted e Michael na help-gnu-emacs.
fonte
epa-file-cache-passphrase-for-symmetric-encryption
: "Observe que esta opção não tem efeito se você usar o GnuPG 2.0."