Mutt: วิธีการเก็บรหัสผ่านอย่างปลอดภัย?


52

ไฟล์. mtrtrc ของฉันดูเหมือนไฟล์นี้หรือดูด้านล่าง ฉันลังเลกับรหัสผ่าน ฉันจะเก็บรหัสผ่านของฉันไว้ใช้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
ในโพสต์ที่คุณลิงก์ฉันได้เขียน "ตรวจสอบให้แน่ใจว่า ~ / .muttrc ของคุณไม่สามารถอ่านได้ทั่วโลกประกอบด้วยรหัสผ่านของคุณ (หรือมิฉะนั้นคุณสามารถปล่อยให้พวกเขาออกและ mutt จะขอให้คุณใส่รหัสผ่านทุกครั้ง)" :-)

คำตอบ:


38

การบิดนี้ควรกำจัดปัญหาของคุณ ใช้ gpg ตามที่แนะนำหรือ

set imap_pass=`getpassword email_id`

ที่ที่คุณใช้pwsafeหรือรหัสผ่านเพื่อดึงรหัสผ่าน

แก้ไข: หาก mutt สร้างขึ้นด้วยการสนับสนุน IMAP (--enable-imap) ดังนั้น mutt ควรแจ้งให้คุณใส่รหัสผ่านหากคุณไม่ได้ตั้งค่าไว้ในไฟล์ปรับแต่ง จากคู่มือ:

imap_pass

ประเภท: สตริงเริ่มต้น: ""

ระบุรหัสผ่านสำหรับบัญชี IMAP ของคุณ หากไม่มีการตั้งค่า Mutt จะแจ้งให้คุณใส่รหัสผ่านเมื่อคุณเรียกใช้ฟังก์ชั่น fetch-mail คำเตือน: คุณควรใช้ตัวเลือกนี้เฉพาะเมื่อคุณอยู่บนเครื่องที่ค่อนข้างปลอดภัยเพราะ superuser สามารถอ่าน muttrc ของคุณแม้ว่าคุณจะเป็นคนเดียวที่สามารถอ่านไฟล์ได้


9
+1 ได้ถามคุณ คุณควรจะต้องป้อนเพียงครั้งเดียวต่อเซสชั่น
David Mackintosh

2
นอกจากนี้หากคุณทำงานmuttภายในtmuxเซสชันของคุณสามารถอยู่ได้นาน
Chris W.

ฟังก์ชั่นนี้คืออะไรgetpassword? ฉันไม่มีใน Ubuntu 14.04.3 LTS (GNU / Linux) เซิร์ฟเวอร์ของฉัน ฉันคิดว่าพวกเขาเป็นpwsafeหรือpasswordsแต่ฉันควรใช้พวกเขา? ฉันต้องการลงชื่อเข้าใช้ mutt -account โดยไม่ต้องใช้รหัสผ่านเมื่อฉันลงชื่อเข้าใช้เซิร์ฟเวอร์เนื่องจากรหัสผ่านของเซิร์ฟเวอร์นั้นเป็นรหัสเดียวกับอีเมล
LéoLéopold Hertz 준영

1
คุณสามารถใช้รหัสผ่าน - passwordstore.org เครื่องมือนี้สามารถใช้งานได้ในลักษณะเดียวกับที่อธิบายไว้ในคำตอบข้างต้น รหัสผ่านจะถูกเก็บไว้ในที่เก็บ git โดยใช้รหัส GPG ที่เลือก
Jakub Jindra

28

สร้างไฟล์รหัสผ่าน~/.mutt/passwords::

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

ไฟล์นี้สามารถเข้ารหัสโดยใช้ GPG ก่อนอื่นให้สร้างคู่คีย์สาธารณะ / ส่วนตัว:

$ gpg --gen-key

เข้ารหัสไฟล์รหัสผ่าน:

$ 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

เพิ่มในของคุณmuttrc:

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

ผ่านทาง

ดูรายการMutt ของ Arch Wiki


คีย์สาธารณะในไฟล์รหัสผ่านหรือเชลล์สคริปต์ควรหรือไม่ ฉันคิดว่าเชลล์สคริปต์ควรอยู่ใน. muttrc gpg: masi@myuni.fi: skipped: public key not found gpg: /u/77/masi/unix/.mutt/passwords: encryption failed: public key not foundฉันจะได้รับหลังจากใช้คำสั่งจีพีจี ฉันทำcat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/known_hostsแต่ดูเหมือนจะไม่เป็นปัญหา ฉันทำอะไรผิด
LéoLéopold Hertz 준영

1
Masi คุณต้องมีรหัส GPG (หรือ PGP) ไม่ใช่รหัสสาธารณะ SSH ของคุณ ข้อมูลเพิ่มเติมเกี่ยวกับปุ่ม GPG ที่นี่: fedoraproject.org/wiki/Creating_GPG_Keysและที่นี่: help.ubuntu.com/community/GnuPrivacyGuardHowto
DmitrySandalov

1
นี่เป็นโซลูชั่นที่สมบูรณ์แบบ นี่คือไฟล์ปรับแต่งของฉันสำหรับทุกคนที่ต้องการการอ้างอิง: github.com/shubhamchaudhary/dotfiles/blob/master/home/.muttrc
Shubham Chaudhary

ฉันคิดว่านี่เป็นวิธีการแก้ปัญหาที่ดี แต่จากนั้นฉันพิมพ์เป็น:set imap_passmutt และได้รหัสผ่านของฉันแสดงใน cleartext สามารถหลีกเลี่ยงได้ไหม เมื่อ mutt ขอรหัสผ่าน imap เองจะไม่แสดงรหัสผ่าน caleartext เมื่อพิมพ์: set ...
eli

คุณสร้างรหัสส่วนตัว GPG ของคุณโดยไม่มีรหัสผ่านหรือไม่? หากไม่gpg -dต้องการรหัสผ่าน ทำไมต้องใช้รหัสผ่านเพื่อเข้ารหัสรหัสผ่านเมื่อเป้าหมายคือการลงชื่อเข้าใช้แบบไม่มีรหัสผ่าน ...
sdaffa23fdsf

3

ทำไมไม่ใช้ผู้จัดการกระเป๋าเงินเช่นgnome-keyringหรือkwalletmanagerกับsecret-tool?

apt install gnome-keyring secret-tool

. [นีโอ] muttrc:

source 'echo "$( pw=$( secret-tool lookup user <USERNAME> domain <DOMAIN> ); echo set imap_pass=\"$pw\"; echo set smtp_pass=\"$pw\" )" |'

เก็บ imap และ smtp passwd ของคุณ:

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

คุณสามารถเลือกป้ายกำกับของคุณเองได้ถ้าต้องการ

ค้นหาเครดิตของคุณโดยใช้เชลล์:

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

เปิดไฟ [neo] mutt ของคุณเชื่อมต่อและลงชื่อเข้าใช้ imap srv ของคุณ สนุก.

โซลูชันนี้มีข้อได้เปรียบมากกว่า gpg-based: มันทำงานได้ดีและไม่มีไฟล์เพิ่มเติมเหลืออยู่รอบตัว

โบนัส: ใช้libsecretโดยตรงหรือgnome-keyringเป็นgit credential-helperเช่นเดียวกับในคอมไพล์ด้วย libsecretและคอมไพล์กับ gnome-พวงกุญแจ ผู้ช่วยทั้งสองต้องการการรวบรวมด้วยตนเอง ใช่มันค่อนข้างอึดอัด แต่ก็ใช้งานได้ดี


1

จากความคิดเห็นของ ShreevatsaR ฉันต้องการเน้นความปลอดภัย หากรหัสผ่านเป็น $ HOME / .muttrc ให้ทำ

chmod go-r $HOME/.muttrc

อย่างไรก็ตามฉันคิดว่านี่ยังไม่เป็นตัวเลือกที่ปลอดภัย คุณควรใช้วิธีการบางอย่างที่ใช้เกลือในการจัดเก็บรหัสผ่าน


0

คุณสามารถอ่านรหัสผ่านจากไฟล์ที่ไม่ได้เข้ารหัส

ตัวอย่างเช่นใส่รหัสผ่านใน~/secrets/mail_pass:

the_secret_mail_password

แล้วก็

chmod 600 ~/secrets/mail_pass`

ใน muttrc ของคุณ:

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

มันง่ายกว่าchmod 600 ~/.muttrcมาก
dr01

หากคุณเก็บรหัสผ่านไว้ในนั้น~/.muttrcคุณจะไม่สามารถเผยแพร่ได้โดยใส่ไว้ใน GitLab เป็นต้นนอกจากนี้หากคุณใช้ OfflineIMAP ก็ต้องใช้รหัสผ่านเช่นกันและสามารถอ่านได้จากไฟล์รหัสผ่านภายนอกเช่นกัน
Matthias Braun
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.