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

그리고 그것은 내 요구에 ~ OK입니다. 제가 mutt를 처음 접했기 때문에 더 좋은 방법이 없을지 궁금합니다...

(... 생략된 imap_pass 및 smtp_pass를 사용하는 것과 같습니다. 이로 인해 mutt가 imap_pass에 대해 프롬프트를 표시하고 smtp에 대해 동일하게 사용하도록 mutt를 어떻게든 설득하는 것과 같습니다.)

답변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를 실행할 때 비밀번호를 알아낼 수 있습니다.

관련 정보