如何在 Mutt 郵件客戶端中使用密文密碼
當你想使用 Mutt 通過公司的 SMTP/IMAP 伺服器訪問或發送郵件,或取代網頁郵件服務,可能所關心的一個問題是如何保護您的郵件憑據(如:SMTP/IMAP 密碼),它們存儲在一個純文本 Mutt 配置文件(~/.muttrc)中。
對於這些人對安全的擔憂,確實有一個容易的方法來**加密 Mutt 配置文件***,以防止這種風險。在這個教程中,我描述了如何加密 Mutt 敏感配置,比如使用 GnuPG(GPG)加密 SMTP/IMAP 密碼,GPG 是一個開源的 OpenPGP 實現。
第一步 (可選):創建 GPG 密鑰
因為我們將要使用 GPG 加密 Mutt 配置文件,如果你沒有 GPG 密鑰,第一步就是創建一個(公鑰/私鑰對)。如果有,請忽略這步。
創建一個新 GPG 密鑰,輸入下面命令:
$ gpg --gen-key
選擇密鑰類型(RSA),密鑰長度(2048 bits),和過期時間(0 代表不過期)。當出現用戶 ID 提示時,輸入關聯到該公鑰/私鑰對的名字(Dan Nanni) 和郵箱地址(myemail@email.com)。最後,輸入一個密碼來保護你的私鑰。
生成一個 GPG 密鑰需要大量的隨機位元組來構成熵,所以在生成密鑰期間確保在你的系統上執行一些隨機行為(如:敲打鍵盤,移動滑鼠或者讀寫磁碟)。根據密鑰長度,生成 GPG 密鑰要花幾分鐘或更多時間。
第二步:加密 Mutt 敏感配置
下一步,在 ~/.mutt 目錄創建一個新的文本文件,然後把一些你想隱藏的 Mutt 敏感配置放進去。這個例子里,我指定了 SMTP/IMAP 密碼。
$ mkdir ~/.mutt
$ vi ~/.mutt/password
set smtp_pass="XXXXXXX"
set imap_pass="XXXXXXX"
現在通過 GPG 使用你的公鑰加密這個文件如下:
$ gpg -r myemail@email.com -e ~/.mutt/password
這將創建 ~/.mutt/password.gpg,這是一個原始文件的 GPG 加密版本。
然後刪除 ~/.mutt/password,只保留 GPG 加密版本。
第三步:創建完整 Mutt 配置文件
現在你已經在一個單獨的文件放置了加密的 Mutt 敏感配置,你可以在 ~/.muttrc 指定其餘的 Mutt 配置。然後增加下面這行在 ~/.muttrc 末尾。
source "gpg -d ~/.mutt/password.gpg |"
當你啟動 Mutt 時,這行將解密 ~/.mutt/password.gpg ,然後將解密內容應用到你的 Mutt 配置中。
下面展示一個完整 Mutt 配置例子,這可以讓你通過 Mutt 訪問 Gmail,而沒有暴露你的 SMTP/IMAP 密碼。用你的 Gmail ID 替代下面的 yourgmailaccount
,此外你也需要在你的 Goolgle 賬戶設置中啟用「支持不太安全的應用訪問」。
set from = "yourgmailaccount@gmail.com"
set realname = "Your Name"
set smtp_url = "smtp://yourgmailaccount@smtp.gmail.com:587/"
set imap_user = "yourgmailaccount@gmail.com"
set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set postponed = "+[Google Mail]/Drafts"
set trash = "+[Google Mail]/Trash"
set header_cache =~/.mutt/cache/headers
set message_cachedir =~/.mutt/cache/bodies
set certificate_file =~/.mutt/certificates
set move = no
set imap_keepalive = 900
# encrypted IMAP/SMTP passwords
source "gpg -d ~/.mutt/password.gpg |"
第四步(可選):配置 GPG 代理
這時候,你將可以使用加密了IMAP/SMTP 密碼的 Mutt。然而,每次你運行 Mutt,你都要先被提示輸入一個 GPG 密碼來使用你的私鑰解密 IMAP/SMTP 密碼。
如果你想避免這樣的 GPG 密碼提示,你可以部署一個 gpg-agent。它以後台守護進程方式運行,gpg-agent 可以安全地緩存你的 GPG 密碼,無需手工干預,gpg 可以自動從 gpg-agent 獲得你的 GPG 密碼。如果你正在使用 Linux 桌面,你可以配置使用一些等同於 gpg-agent 的特定的桌面軟體,例如,GNOME 桌面的 gnome-keyring-daemon。
你可以在基於 Debian 系統安裝 gpg-agent:
$ sudo apt-get install gpg-agent
gpg-agent 在基於 Red Hat 的系統上是預裝好的。
現在增加下面這些到你的 .bashrc 文件中。
envfile="$HOME/.gnupg/gpg-agent.env"
if [[ -e "$envfile" ]] && kill -0 $(grep GPG_AGENT_INFO "$envfile" | cut -d: -f 2) 2>/dev/null; then
eval "$(cat "$envfile")"
else
eval "$(gpg-agent --daemon --allow-preset-passphrase --write-env-file "$envfile")"
fi
export GPG_AGENT_INFO
重載 .bashrc,或簡單的登出然後重新登錄。
$ source ~/.bashrc
現在確認 GPGAGENTINFO 環境變數已經設置妥當。
$ echo $GPG_AGENT_INFO
/tmp/gpg-0SKJw8/S.gpg-agent:942:1
並且,當你輸入 gpg-agent 命令時,你應該看到下面的信息。
$ gpg-agent
gpg-agent: gpg-agent running and available
一旦 gpg-agent 啟動運行,它將會在第一次提示你輸入密碼時緩存你的 GPG 密碼。隨後你多次運行 Mutt ,都不會被提示要 GPG 密碼(gpg-agent 一直開著,緩存就不會過期)。
結論
在這個指導里,我提供一個使用 GnuPG 加密如 SMTP/IMAP 密碼這樣的 Mutt 敏感配置的方法。注意,如果你想在 Mutt 上使用 GnuPG 來加密或簽名你的郵件,你可以參考官方指南關於 GPG 與 Mutt 結合的部分。
如果你知道任何使用 Mutt 的安全技巧,歡迎分享它。
via: http://xmodulo.com/mutt-email-client-encrypted-passwords.html
作者:Dan Nanni 譯者:wyangsun 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive