mutt 一次提示密碼,用於 imap 和 smtp

mutt 一次提示密碼,用於 imap 和 smtp

我的 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 時取得密碼。

相關內容