Mutt: como armazenar com segurança a senha?

52

Meu arquivo .muttrc é semelhante a este ou veja abaixo um vislumbre. Estou hesitante com a senha. Como devo armazenar minha senha para usá-la mutt?

set imap_user = "[email protected]"
set imap_pass = "password"

set smtp_url = "smtp://[email protected]:587/"
set smtp_pass = "password"
set from = "[email protected]"
set realname = "Your Real Name"
Anthon
fonte
4
Na postagem que você vinculou, eu já escrevi "Verifique se o seu ~ / .muttrc não é legível pelo mundo; ele contém sua senha. (Como alternativa, você pode deixá-los de fora e o mutt solicitará a senha a cada vez.)" :-)

Respostas:

38

Esse ajuste deve se livrar do seu problema. Use gpg conforme sugerido ou

set imap_pass=`getpassword email_id`

onde você usa pwsafe ou senhas para buscar as senhas.

Editar: Se o mutt for criado com suporte IMAP (--enable-imap), o mutt deverá solicitar a senha se você não a definir no arquivo de configuração. Do manual:

imap_pass

Tipo: string Padrão: ""

Especifica a senha da sua conta IMAP. Se não estiver definido, o Mutt solicitará sua senha quando você chamar a função de buscar mensagens. Aviso: você só deve usar esta opção quando estiver em uma máquina razoavelmente segura, porque o superusuário pode ler o seu muttrc, mesmo que você seja o único que pode ler o arquivo.

Nagul
fonte
9
+1 tem mutt pedir por isso. Você só precisa inseri-lo uma vez por sessão.
David Mackintosh
2
Além disso, se você executar muttdentro tmux, sua sessão poderá durar um tempo.
29513 Chris W.
Qual é essa função getpassword? Não o tenho no meu servidor Ubuntu 14.04.3 LTS (GNU / Linux). Eu acho que eles são pwsafeou passwordsdevo usá-los? Eu gostaria de estar logado na minha conta-mutt sem senha quando estiver logado no servidor, já que a senha do servidor é a mesma que a do email.
Léo Léopold Hertz 준영
11
Você pode usar pass - passwordstore.org Essa ferramenta pode ser usada exatamente da mesma maneira como descrito na resposta acima. As senhas são armazenadas no repositório git criptografado pela chave GPG escolhida.
Jakub Jindra 12/02
28

Crie um arquivo de senhas ~/.mutt/passwords::

set imap_pass="password"
set smtp_pass="password"

Este arquivo pode ser criptografado usando o GPG. Primeiro, crie um par de chaves pública / privada:

$ gpg --gen-key

Criptografe o arquivo de senhas:

$ gpg -r [email protected] -e ~/.mutt/passwords
$ ls ~/.mutt/passwords*
/home/user/.mutt/passwords   /home/user/.mutt/passwords.gpg
$ shred ~/.mutt/passwords
$ rm ~/.mutt/passwords

Adicione ao seu muttrc:

source "gpg -d ~/.mutt/passwords.gpg |"

através da

Veja também a entrada Mutt do Arch Wiki .

DmitrySandalov
fonte
A chave pública deve estar no arquivo de senhas ou no shell script? Eu acho que o script shell deve estar em .muttrc. Recebo depois de executar o comando gpg gpg: [email protected]: skipped: public key not found gpg: /u/77/masi/unix/.mutt/passwords: encryption failed: public key not found. Eu fiz, cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/known_hostsmas não parece ser o problema. O que eu faço de errado?
Léo Léopold Hertz 준영
11
Masi, você precisa ter uma chave GPG (ou PGP), não sua chave pública SSH. Mais informações sobre as chaves GPG aqui: fedoraproject.org/wiki/Creating_GPG_Keys e aqui: help.ubuntu.com/community/GnuPrivacyGuardHowto
DmitrySandalov
11
Esta é uma solução perfeita. Aqui está o meu arquivo de configuração para quem precisa para referência: github.com/shubhamchaudhary/dotfiles/blob/master/home/.muttrc
Shubham Chaudhary
Eu pensei que essa era uma boa solução, mas digitei :set imap_passmutt e obtive minha senha em texto não criptografado. Isso pode ser evitado? Quando vira-lata pede a própria senha IMAP, ele não mostra a senha caleartext quando digitando: set ...
eli
Você criou sua chave privada GPG sem senha? Caso contrário gpg -d, exigiria senha. Por que usar senha para criptografar uma senha quando o objetivo é o login sem senha ...
sdaffa23fdsf
3

Por que não usar um gerente de carteira como gnome-keyringou kwalletmanagercom secret-tool?

apt install gnome-keyring secret-tool

. [neo] muttrc:

source 'echo "$( pw=$( secret-tool lookup user <USERNAME> domain <DOMAIN> ); echo set imap_pass=\"$pw\"; echo set smtp_pass=\"$pw\" )" |'

Armazene seu imap e smtp passwd:

secret-tool store --label=imap user <USERNAME> domain <DOMAIN>

Você pode escolher seu próprio rótulo, se quiser.

Procure seus creds usando uma concha:

secret-tool lookup user <USERNAME> domain <DOMAIN>

Inicie o seu [neo] mutt, conecte-se e faça login no seu imap srv. Desfrutar.

Esta solução tem vantagens sobre as baseadas em gpg: integra-se bem e não há arquivos adicionais por aí.

Bônus: Use libsecretou diretamente gnome-keyringcomo git credential-helperno git com libsecret e git com gnome-keyring . Ambos os auxiliares precisam de compilação manual. Sim, é um pouco estranho, mas está funcionando muito bem.

Gen.Stack
fonte
1

Com base no comentário de ShreevatsaR, quero enfatizar a segurança. Se a senha em $ HOME / .muttrc, faça

chmod go-r $HOME/.muttrc

No entanto, acho que ainda não é uma opção segura. Você deve usar algum método que use salt no armazenamento de senhas.

Léo Léopold Hertz 준영
fonte
0

Você pode ler a senha de um arquivo não criptografado.

Por exemplo, coloque a senha em ~/secrets/mail_pass:

the_secret_mail_password

Então

chmod 600 ~/secrets/mail_pass`

No seu muttrc:

# Read the password from a file and set it
set smtp_pass=`cat ~/secrets/mail_pass`
Matthias Braun
fonte
É apenas muito mais fácil chmod 600 ~/.muttrc.
dr01 23/09
Se você mantiver suas senhas ~/.muttrc, não poderá publicá-las colocando-as no GitLab, etc. Além disso, se você usar o OfflineIMAP, também precisará da senha e poderá lê-la no arquivo de senhas externas.
Matthias Braun