我的 imap 和 smtp 密碼相同,並且 mutt 版本使用整合 smtp 設定。
我不想將我的密碼儲存在任何腳本中,也不想使用 pgp/openssl 加密,也不想使用錢包密碼管理器。另外,我想要的是:
- 只要詢問一次密碼
- imap 和 smtp 使用相同的密碼(在同一個 mutt 會話中不會再次詢問)
實現這一目標的最佳方法是什麼?
我已經想出的解決方案使用這些 .muttrc 配置行:
set imap_pass=`read -s -p 'mail-password : ' mailpass ; echo $mailpass`
set smtp_pass=$imap_pass
這對我的需求來說還可以。只是因為我是 mutt 的新手,我想知道是否有更好的方法...
(...就像使用省略的 imap_pass 和 smtp_pass 一樣,這將導致 mutt 提示使用 imap_pass,並以某種方式說服 mutt 對 smtp 使用相同的內容)。
答案1
雖然我不認為將密碼讀入環境變數是安全的, *
我喜歡 Aaron Toponce 的方式(歸功於他:https://p Three.org/2012/01/07/encrypted-mutt-imap-smtp-passwords/):
這樣,您可以使用具有相同密碼檔案的多個帳戶(但是,是的,不建議對不同帳戶使用相同的通行證)
只是必需品(有關說明,請參閱上面的連結):
首先,我建立了一個 ~/.mutt/passwords 檔案。該文件是純文字格式。在加密之前,先看一下它的內容:
set imap_pass="password"
set smtp_pass="password"
然後我使用以下命令加密該文件:
% 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
最後兩個命令是為了確保使用 GNU Shred 實用程式從磁碟上安全地擦除為加密而建立的臨時檔案。現在,您應該只有一個包含密碼的加密二進位資料檔案。剩下的就是配置 Mutt 在啟動時解密它們。您可以在 Muttrc 中輕鬆設定:
source "gpg -d ~/.mutt/passwords.gpg |"
更新:
* 它不在環境變數中,它在記憶體中:
引用:Mutt 必須將密碼儲存在記憶體中的某個位置,並且它使用您可以查詢的設定。它不是環境變量,而是雜種記憶體。每個有權訪問它的人都可以獲得該密碼。在普通的 Linux 系統上,這是在您的使用者下運行的每個程式。當 sysctl kernel.yama.ptrace_scope = 1 時,其他程式都無法存取記憶體本身。但是,如果攻擊者可以以您的使用者身分執行程式碼(如果他破壞了任何程序,他就可以這樣做),那麼他就可以在您執行 gpg 時取得密碼。