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 = "username@gmail.com"
set imap_pass = "password"

set smtp_url = "smtp://username@smtp.gmail.com:587/"
set smtp_pass = "password"
set from = "username@gmail.com"
set realname = "Your Real Name"

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.


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 your.email@example.com -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 .


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: masi@myuni.fi: 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.


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.


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`

É 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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.