Mutt: bagaimana cara menyimpan kata sandi dengan aman?

52

File .muttrc saya terlihat seperti ini atau lihat di bawah sekilas. Saya ragu dengan kata sandi. Bagaimana saya harus menyimpan kata sandi saya untuk menggunakannya 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
sumber
4
Dalam postingan yang Anda tautkan, saya sudah menulis, "Pastikan ~ / .muttrc Anda tidak dapat dibaca dunia; ini mengandung kata sandi Anda. (Atau, Anda dapat mengabaikannya dan mutt akan meminta kata sandi setiap kali.)" :-)

Jawaban:

38

Tweak ini harus menyingkirkan masalah Anda. Gunakan gpg seperti yang disarankan, atau

set imap_pass=`getpassword email_id`

tempat Anda menggunakan pwsafe atau kata sandi untuk mengambil kata sandi.

Sunting: Jika mutt dibangun dengan dukungan IMAP (--enable-imap), maka mutt akan menanyakan kata sandi Anda jika Anda tidak menyetelnya di file konfigurasi. Dari manual:

imap_pass

Jenis: string Default: ""

Menentukan kata sandi untuk akun IMAP Anda. Jika tidak disetel, Mutt akan meminta kata sandi Anda ketika Anda menjalankan fungsi pengambilan email. Peringatan: Anda hanya harus menggunakan opsi ini ketika Anda berada di mesin yang cukup aman, karena superuser dapat membaca muttrc Anda bahkan jika Anda adalah satu-satunya yang dapat membaca file.

Nagul
sumber
9
+1 harus mutt memintamu. Anda hanya harus memasukkannya sekali per sesi.
David Mackintosh
2
Juga, jika Anda berlari di muttdalam tmux, sesi Anda dapat berlangsung beberapa saat.
Chris W.
Apa fungsi ini getpassword? Saya tidak memilikinya di server Ubuntu 14.04.3 LTS (GNU / Linux) saya. Saya pikir mereka pwsafeatau passwordssaya harus menggunakannya? Saya ingin masuk ke akun mutt -account tanpa kata sandi begitu saya masuk ke server, karena kata sandi server sama dengan yang ada di email.
Léo Léopold Hertz 준영
1
Anda dapat menggunakan pass - passwordstore.org Alat ini dapat digunakan dengan cara yang persis sama seperti yang dijelaskan dalam jawaban di atas. Kata sandi disimpan dalam repositori git yang dienkripsi dengan kunci GPG yang dipilih.
Jakub Jindra
28

Buat file kata sandi ~/.mutt/passwords::

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

File ini dapat dienkripsi menggunakan GPG. Pertama, buat pasangan kunci publik / pribadi:

$ gpg --gen-key

Enkripsi file kata sandi:

$ 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

Tambahkan ke Anda muttrc:

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

melalui

Lihat juga entri Mutt Arch Wiki .

DmitrySandalov
sumber
Haruskah kunci publik di file kata sandi atau skrip shell? Saya pikir skrip shell harus dalam .muttrc. Saya dapatkan setelah menjalankan perintah gpg gpg: [email protected]: skipped: public key not found gpg: /u/77/masi/unix/.mutt/passwords: encryption failed: public key not found. Saya lakukan cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/known_hoststetapi tampaknya tidak menjadi masalah. Apa yang saya lakukan salah?
Léo Léopold Hertz 준영
1
Masi, Anda harus memiliki kunci GPG (atau PGP), bukan kunci publik SSH Anda. Info lebih lanjut tentang kunci GPG di sini: fedoraproject.org/wiki/Creating_GPG_Keys dan di sini: help.ubuntu.com/community/GnuPrivacyGuardHowto
DmitrySandalov
1
Ini adalah solusi sempurna. Ini file konfigurasi saya untuk siapa saja yang membutuhkan referensi: github.com/shubhamchaudhary/dotfiles/blob/master/home/.muttrc
Shubham Chaudhary
Saya pikir ini adalah solusi yang baik, tetapi kemudian saya mengetikkan :set imap_passmutt dan mendapatkan kata sandi saya di cleartext. Bisakah ini dihindari? Ketika mutt meminta kata sandi imap itu sendiri, itu tidak menunjukkan kata sandi caleartext saat mengetik: set ...
eli
Apakah Anda membuat kunci pribadi GPG Anda tanpa kata sandi? Jika tidak gpg -dakan membutuhkan kata sandi. Mengapa menggunakan kata sandi untuk mengenkripsi kata sandi ketika tujuannya adalah kata sandi masuk ...
sdaffa23fdsf
3

Mengapa tidak menggunakan pengelola dompet suka gnome-keyringatau kwalletmanagerdengan 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\" )" |'

Simpan imap dan smtp passwd Anda:

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

Anda dapat memilih label Anda sendiri jika mau.

Cari kredit Anda menggunakan shell:

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

Jalankan mutt [neo] Anda, hubungkan & masuk ke imap srv Anda. Nikmati.

Solusi ini memiliki kelebihan dibandingkan yang berbasis gpg: terintegrasi dengan baik dan tidak ada file tambahan yang tersisa.

Bonus: Gunakan libsecretatau langsung gnome-keyringsebagai git credential-helperseperti dalam git dengan libsecret dan git dengan keyring gnome . Kedua pembantu membutuhkan kompilasi manual. Ya, ini agak canggung tapi ini bekerja dengan baik.

Stack
sumber
1

Berdasarkan komentar ShreevatsaR, saya ingin menekankan keamanan. Jika kata sandi dalam $ HOME / .muttrc, lakukan

chmod go-r $HOME/.muttrc

Namun, saya pikir ini masih bukan opsi yang aman. Anda harus menggunakan beberapa metode yang menggunakan garam dalam menyimpan kata sandi.

Léo Léopold Hertz 준영
sumber
0

Anda dapat membaca kata sandi dari file yang tidak dienkripsi.

Misalnya, masukkan kata sandi ke ~/secrets/mail_pass:

the_secret_mail_password

Kemudian

chmod 600 ~/secrets/mail_pass`

Di muttrc Anda:

# Read the password from a file and set it
set smtp_pass=`cat ~/secrets/mail_pass`
Matthias Braun
sumber
Itu jauh lebih mudah chmod 600 ~/.muttrc.
dr01
Jika Anda menyimpan kata sandi di ~/.muttrcdalamnya, Anda tidak akan dapat mempublikasikannya dengan meletakkannya di GitLab, dll. Selain itu, jika Anda menggunakan OfflineIMAP, kata sandi tersebut juga memerlukan kata sandi dan juga dapat membacanya dari file kata sandi eksternal.
Matthias Braun