Estou tentando configurar o OfflineIMAP para autenticar através de um arquivo criptografado por gpg (dessa forma, posso consolidar toda a minha criptografia no processo do agente gpg).
A partir da documentação, parece que a única maneira de criptografar as senhas de um servidor é usar o gnome-keyring (que eu preferiria não executar no meu servidor sem cabeça). Existe uma maneira de inserir minha senha de um arquivo gpg da maneira que você pode com o mutt?
Eu sei que você pode adicionar recursos extras ao offlineimap com o arquivo python de extensão, mas temo não saber por onde começar.
encryption
gpg
offlineimap
Tammer Ibrahim
fonte
fonte
root
usuário pode fazer para contornar a criptografia. Lembre-se de que mesmo o encaminhamento X11 de máquinas não confiáveis (por exemplo, viassh -X
) não é seguro.Respostas:
Outro método de deixar offlineimap em execução com o conhecimento de sua senha, mas sem colocar a senha no disco, é deixar offlineimap em execução no tmux / screen com a
autorefresh
configuração ativada no seu~/.offlineimaprc
Você precisa adicionar
autorefresh = 10
à[Account X]
seção do arquivo offlineimaprc para fazer a verificação a cada 10 minutos. Exclua também qualquer linha de configuração compassword
oupasswordeval
.Em seguida, execute offlineimap - ele solicitará sua senha e a armazenará em cache na memória. Ele não sai após a primeira execução, mas dorme por 10 minutos. Em seguida, ele será ativado e executado novamente, mas ainda lembrará sua senha.
Assim, você pode deixar uma sessão do tmux em execução com offlineimap, digite sua senha uma vez e offlineimap ficará bem depois.
fonte
Eu uso o seguinte método, que funciona bastante bem:
1) Armazene suas senhas em arquivos criptografados separados por gpg. Por exemplo
~/.passwd/<accountname>.gpg
2) Crie um arquivo de extensão python com o nome de sua escolha (por exemplo,
~/.offlineimap.py
), com o seguinte conteúdo:3) Modifique o arquivo .offlineimaprc para informar sobre o arquivo python e como ler suas senhas
Se você possui várias contas que são verificadas simultaneamente (threads separados) e usa o gpg-agent, ele solicitará a senha de cada conta. Preparo o agente criando um arquivo (
echo "prime" | gpg -e -r [email protected] > ~/.passwd/prime.gpg
) e iniciando o agente gpg descriptografando esse arquivo no lançamento do offlineimap. Para fazer isso, adicione o seguinte ao final de~/.offlineimap.py
:fonte
Amando a resposta de @kbeta. No entanto,
subprocess.check_output()
foi introduzido apenas no python 2.7 - então aqui está uma versãoofflineimap.py
que funcionará com versões mais antigas do python:fonte