Mutt: làm thế nào để lưu trữ mật khẩu một cách an toàn?


52

Tệp .muttrc của tôi trông giống như thế này hoặc nhìn thoáng qua bên dưới. Tôi do dự với mật khẩu. Làm thế nào tôi nên lưu trữ mật khẩu của mình để sử dụng nó 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
Trong bài đăng bạn đã liên kết, tôi đã viết "Hãy chắc chắn rằng ~ / .muttrc của bạn không thể đọc được trên thế giới; nó chứa mật khẩu của bạn. (Ngoài ra, bạn có thể bỏ chúng ra và mutt sẽ nhắc bạn nhập mật khẩu mỗi lần.)" :-)

Câu trả lời:


38

Tinh chỉnh này sẽ thoát khỏi vấn đề của bạn. Sử dụng gpg theo đề xuất hoặc

set imap_pass=`getpassword email_id`

nơi bạn sử dụng pwsafe hoặc mật khẩu để lấy mật khẩu.

Chỉnh sửa: Nếu mutt được xây dựng với hỗ trợ IMAP (--enable-imap), thì mutt sẽ nhắc bạn nhập mật khẩu nếu bạn không đặt nó trong tệp cấu hình. Từ hướng dẫn:

imap_pass

Loại: chuỗi Mặc định: ""

Chỉ định mật khẩu cho tài khoản IMAP của bạn. Nếu không được đặt, Mutt sẽ nhắc bạn nhập mật khẩu khi bạn gọi chức năng tìm nạp thư. Cảnh báo: bạn chỉ nên sử dụng tùy chọn này khi bạn ở trên một máy khá an toàn, vì trình siêu người dùng có thể đọc muttrc của bạn ngay cả khi bạn là người duy nhất có thể đọc tệp.


9
+1 có mutt yêu cầu bạn cho nó. Bạn chỉ nên nhập nó một lần mỗi phiên.
David Mackffy

2
Ngoài ra, nếu bạn chạy mutttrong tmux, phiên của bạn có thể kéo dài một lúc.
Chris W.

Chức năng này là getpasswordgì? Tôi không có nó trong máy chủ Ubuntu 14.04.3 LTS (GNU / Linux). Tôi nghĩ rằng họ là pwsafehoặc passwordstôi nên sử dụng chúng? Tôi muốn đăng nhập vào tài khoản của mình mà không cần mật khẩu khi tôi đăng nhập vào máy chủ, vì mật khẩu của máy chủ giống như mật khẩu của email.
Léo Léopold Hertz

1
Bạn có thể sử dụng pass - passwordstore.org Công cụ này có thể được sử dụng chính xác theo cách tương tự như được mô tả trong câu trả lời ở trên. Mật khẩu được lưu trữ trong kho git được mã hóa bằng khóa GPG được chọn.
Jakub Jindra

28

Tạo một tập tin mật khẩu ~/.mutt/passwords::

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

Tập tin này có thể được mã hóa bằng GPG. Đầu tiên, tạo một cặp khóa công khai / riêng tư:

$ gpg --gen-key

Mã hóa tệp mật khẩu:

$ 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

Thêm vào của bạn muttrc:

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

thông qua

Xem thêm mục Mutt của Arch Wiki .


Nên khóa công khai trong tập tin mật khẩu hoặc tập lệnh shell? Tôi nghĩ kịch bản shell nên ở .muttrc. Tôi nhận được sau khi chạy lệnh gpg gpg: masi@myuni.fi: skipped: public key not found gpg: /u/77/masi/unix/.mutt/passwords: encryption failed: public key not found. Tôi đã làm cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/known_hostsnhưng nó dường như không phải là vấn đề. Tôi làm gì sai?
Léo Léopold Hertz

1
Masi, bạn cần có khóa GPG (hoặc PGP), không phải khóa công khai SSH. Thông tin thêm về GPG phím ở đây: fedoraproject.org/wiki/Creating_GPG_Keys và ở đây: help.ubuntu.com/community/GnuPrivacyGuardHowto
DmitrySandalov

1
Đây là một giải pháp hoàn hảo. Đây là tập tin cấu hình của tôi cho bất kỳ ai cần tham khảo: github.com/shubhamchaudhary/dotfiles/blob/master/home/.muttrc
Shubham Chaudhary

Tôi nghĩ rằng đây là một giải pháp tốt, nhưng sau đó tôi đã gõ :set imap_passvào mutt và mật khẩu của tôi được hiển thị trong Cleartext. Điều này có thể tránh được không? Khi mutt yêu cầu mật khẩu imap chính nó, nó không hiển thị mật khẩu caleartext khi gõ: bộ ...
eli

Bạn đã tạo khóa riêng GPG mà không cần mật khẩu? Nếu không gpg -dsẽ yêu cầu mật khẩu. Tại sao nên sử dụng mật khẩu để mã hóa mật khẩu khi mục tiêu không đăng nhập bằng mật khẩu ...
sdaffa23fdsf

3

Tại sao không sử dụng một trình quản lý ví như gnome-keyringhoặc kwalletmanagervới 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\" )" |'

Lưu trữ imap và smtp passwd của bạn:

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

Bạn có thể chọn nhãn của riêng bạn nếu bạn muốn.

Tra cứu tín dụng của bạn bằng cách sử dụng shell:

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

Bật [mutt] mutt của bạn, kết nối và đăng nhập vào srv imap của bạn. Thưởng thức.

Giải pháp này có ưu điểm so với các giải pháp dựa trên gpg: nó tích hợp tốt và không có tệp bổ sung nào bị bỏ lại xung quanh.

Phần thưởng: Sử dụng libsecrethoặc trực tiếp gnome-keyringnhư git credential-helperlà trong git với libsecretgit với gnome-keyring . Cả hai người trợ giúp đều cần biên dịch thủ công. Vâng, nó hơi khó xử nhưng nó hoạt động rất tốt.


1

Dựa trên nhận xét của ShreevatsaR, tôi muốn nhấn mạnh tính bảo mật. Nếu mật khẩu bằng $ HOME / .muttrc, hãy làm

chmod go-r $HOME/.muttrc

Tuy nhiên, tôi nghĩ rằng đây không phải là một lựa chọn an toàn. Bạn nên sử dụng một số phương pháp sử dụng muối trong việc lưu trữ mật khẩu.


0

Bạn có thể đọc mật khẩu từ một tập tin không được mã hóa.

Ví dụ: đặt mật khẩu vào ~/secrets/mail_pass:

the_secret_mail_password

Sau đó

chmod 600 ~/secrets/mail_pass`

Trong muttrc của bạn:

# Read the password from a file and set it
set smtp_pass=`cat ~/secrets/mail_pass`

Nó chỉ là dễ dàng hơn nhiều để chmod 600 ~/.muttrc.
dr01

Nếu bạn giữ mật khẩu của mình, ~/.muttrcbạn sẽ không thể xuất bản nó bằng cách đưa nó lên GitLab, v.v. Ngoài ra, nếu bạn sử dụng OfflineIMAP, nó cũng cần mật khẩu và cũng có thể đọc nó từ tệp mật khẩu bên ngoài.
Matthias Braun
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.