Mutt: jak bezpiecznie przechowywać hasło?

52

Mój plik .muttrc wygląda coś jak ten jeden lub zobacz poniżej spojrzenie. Waham się z hasłem. Jak przechowywać hasło, aby z niego korzystać 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
źródło
4
W poście, który podlinkowałeś, już napisałem: „Upewnij się, że twój ~ / .muttrc nie jest czytelny dla całego świata; zawiera twoje hasło. (Alternatywnie, możesz je pominąć, a mutt poprosi cię o hasło za każdym razem.)” :-)

Odpowiedzi:

38

Ta poprawka powinna pozbyć się twojego problemu. Użyj gpg zgodnie z sugestią lub

set imap_pass=`getpassword email_id`

gdzie używasz pwsafe lub haseł do pobrania haseł.

Edycja: Jeśli mutt jest zbudowany z obsługą IMAP (--enable-imap), to mutt powinien monitować o hasło, jeśli nie zostanie ustawione w pliku konfiguracyjnym. Z instrukcji:

imap_pass

Typ: ciąg Domyślnie: „”

Określa hasło do konta IMAP. Jeśli nie zostanie ustawiony, Mutt poprosi cię o podanie hasła podczas wywoływania funkcji pobierania poczty. Ostrzeżenie: tej opcji należy używać tylko na dość bezpiecznym komputerze, ponieważ superużytkownik może odczytać twoje muttrc, nawet jeśli tylko ty możesz czytać plik.

nagul
źródło
9
+1 każą ci o to poprosić. Powinieneś wprowadzić go tylko raz na sesję.
David Mackintosh,
2
Ponadto, jeśli biegniesz muttw środku tmux, twoja sesja może trwać chwilę.
Chris W.
Co to za funkcja getpassword? Nie mam go na moim serwerze Ubuntu 14.04.3 LTS (GNU / Linux). Myślę, że są, ale pwsafeczy passwordspowinienem ich użyć? Chciałbym być zalogowany na moim koncie mutt bez hasła po zalogowaniu się na serwerze, ponieważ hasło do serwera jest takie samo jak hasło do wiadomości e-mail.
Léo Léopold Hertz 준영
1
Możesz użyć pass - passwordstore.org Z tego narzędzia można korzystać dokładnie tak samo, jak opisano w odpowiedzi powyżej. Hasła są przechowywane w repozytorium git zaszyfrowanym przez wybrany klucz GPG.
Jakub Jindra
28

Utwórz plik haseł ~/.mutt/passwords:

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

Ten plik można zaszyfrować za pomocą GPG. Najpierw utwórz parę kluczy publiczny / prywatny:

$ gpg --gen-key

Zaszyfruj plik haseł:

$ 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

Dodaj do muttrc:

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

przez

Zobacz także wpis Mutt Arch Wiki .

Dmitrij Sandałow
źródło
Czy klucz publiczny powinien znajdować się w pliku haseł czy skrypcie powłoki? Myślę, że skrypt powłoki powinien znajdować się w .muttrc. Dostaję po uruchomieniu polecenia gpg gpg: [email protected]: skipped: public key not found gpg: /u/77/masi/unix/.mutt/passwords: encryption failed: public key not found. Zrobiłem to, cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/known_hostsale wydaje się, że nie stanowi to problemu. Co robię źle?
Léo Léopold Hertz 준영
1
Masi, musisz mieć klucz GPG (lub PGP), a nie klucz publiczny SSH. Więcej informacji na temat kluczy GPG tutaj: fedoraproject.org/wiki/Creating_GPG_Keys i tutaj: help.ubuntu.com/community/GnuPrivacyGuardHowto
DmitrySandalov
1
To idealne rozwiązanie. Oto mój plik konfiguracyjny dla każdego, kto potrzebuje referencji: github.com/shubhamchaudhary/dotfiles/blob/master/home/.muttrc
Shubham Chaudhary
Myślałem, że to dobre rozwiązanie, ale potem wpisałem :set imap_passmutt i pokazałem moje hasło w postaci czystego tekstu. Czy można tego uniknąć? Gdy mutt prosi o samo hasło imap, nie wyświetla hasła tekstu kalendarza podczas pisania: ustaw ...
eli
Czy utworzyłeś swój prywatny klucz GPG bez hasła? Jeśli nie gpg -d, wymagałoby hasła. Po co używać hasła do szyfrowania hasła, gdy celem jest logowanie bez hasła ...
sdaffa23fdsf
3

Dlaczego nie skorzystać z menedżera portfela takiego jak gnome-keyringlub kwalletmanagerz 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\" )" |'

Przechowuj swoje imap i smtp passwd:

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

Możesz wybrać własną wytwórnię, jeśli chcesz.

Sprawdź swoje kredyty za pomocą powłoki:

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

Odpal swój [neo] mutt, połącz i zaloguj się do imap srv. Cieszyć się.

To rozwiązanie ma przewagę nad rozwiązaniami opartymi na gpg: dobrze się integruje i nie pozostawia żadnych dodatkowych plików.

Bonus Use libsecretlub bezpośrednio gnome-keyringw postaci git credential-helperjak w git z libsecret i git gnome-kluczy . Obaj pomocnicy potrzebują ręcznej kompilacji. Tak, to trochę dziwne, ale działa świetnie.

Gen.Stack
źródło
1

Na podstawie komentarza ShreevatsaR chcę podkreślić bezpieczeństwo. Jeśli hasło w $ HOME / .muttrc, zrób

chmod go-r $HOME/.muttrc

Myślę jednak, że nadal nie jest to bezpieczna opcja. Powinieneś użyć metody, która wykorzystuje sól do przechowywania haseł.

Léo Léopold Hertz 준영
źródło
0

Możesz odczytać hasło z niezaszyfrowanego pliku.

Na przykład umieść hasło w ~/secrets/mail_pass:

the_secret_mail_password

Następnie

chmod 600 ~/secrets/mail_pass`

W twoim muttrc:

# Read the password from a file and set it
set smtp_pass=`cat ~/secrets/mail_pass`
Matthias Braun
źródło
Jest to o wiele łatwiejsze chmod 600 ~/.muttrc.
dr01
Jeśli ~/.muttrczachowasz swoje hasło , nie będziesz mógł go opublikować, umieszczając je w GitLab itp. Ponadto, jeśli używasz OfflineIMAP, potrzebuje również hasła i może je odczytać również z zewnętrznego pliku haseł.
Matthias Braun