mutt를 사용하여 Gmail에 로그인하려고 하면 account.gmail.com과 같은 URL이 포함된 빠른 웹 경고가 깜박입니다. 너무 빨라서 보거나 복사할 수 없습니다. 그러면 로그인에 실패했다는 메시지가 뜹니다.
그러던 중 Gmail로부터 다음과 같은 이메일을 받았습니다.
Google Account: sign-in attempt blocked
Hi Adam,
We recently blocked a sign-in attempt to your Google Account [[email protected]].
Sign in attempt details
Date & Time: Wednesday, December 10, 2014 11:55:21 PM UTC
Location: Utah, USA
If this wasn't you
Please review your Account Activity page at https://security.google.com/settings/security/activity to see if anything looks suspicious. Whoever tried to sign in to your account knows your password; we recommend that you change it right away.
If this was you
You can switch to an app made by Google such as Gmail to access your account (recommended) or change your settings at https://www.google.com/settings/security/lesssecureapps so that your account is no longer protected by modern security standards.
To learn more, see https://support.google.com/accounts/answer/6010255.
Sincerely,
The Google Accounts team
해당 링크로 이동하여 "보안 수준이 낮은 앱 액세스"를 활성화하면 정상적으로 로그인할 수 있습니다. 그런데 Gmail에서 보안 수준이 낮은 옵션을 활성화하지 않고도 mutt를 사용하여 로그인할 수 있는 방법이 있나요?
고쳐 쓰다:
저는 mac os x Yosemite를 사용하고 있고 mutt -v를 실행하면 컴파일 옵션에 +USE_SSL_OPENSSL이 포함됩니다. Google 2단계 인증을 사용하지 않습니다. 애플리케이션별 비밀번호를 사용하지 않습니다. 다음은 메시지입니다. 로그인하려고 하면 다음을 얻습니다.
Reading imaps://imap.gmail.com:993/INBOX...
Looking up imap.gmail.com...
Connecting to imap.gmail.com...
TLSv1.2 connection using TLSv1/SSLv3 (ECDHE-RSA-AES128-GCM-SHA256)
Logging in...
[WEBALERT https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbsm0P......
이 답변을 찾았지만 작동하지 않습니다.https://stackoverflow.com/a/25209735/1665818
답변1
마침내 Google 2단계 인증을 활성화하고 mutt에 애플리케이션별 비밀번호를 사용하여 작동하게 되었습니다.
자세한 내용은:
내 Google 계정에 2단계 인증이 활성화되어 있습니다. 즉, Google에 로그인할 때 문자나 Google Authenticator 앱을 통해 PIN을 입력해야 합니다.
그런 다음 mutt에 대한 애플리케이션별 비밀번호를 얻어야 합니다. 애플리케이션별 비밀번호를 생성할 수 있습니다.여기.
그런 다음 일반 비밀번호 대신 해당 애플리케이션 특정 비밀번호를 사용하여 mutt에 로그인합니다. 그러면 비밀번호를 입력할 필요가 없습니다.
답변2
~처럼댓글 중 하나같다고 말해Google은 기본적으로 IMAP/SMTP PLAIN 인증을 사용하는 앱을 차단하기 시작했습니다.공식 블로그 설명을 읽을 수 있습니다.Google에서는 IMAP/SMTP 프로토콜 사용자에게 OAuth 2.0으로 전환할 것을 적극 권장합니다.(XMPP도 나열되어 있으므로 (이전?) OSX iChat이 어느 시점에서는 GTalk와의 작동을 중단할지 궁금합니다.) 그 외에도 몇 가지 흥미로운 점이 있습니다.이번 변경 이유에 대한 추측. 이 글을 쓰는 시점에서 일화적인 설문 조사에 따르면 다음과 같습니다.
- Google 비즈니스 계정에 익숙해이 질문을 참조하세요. 비밀번호 기반 IMAP/SMTP 로그인을 자동으로 계속 허용하며 현재 이를 거부할 설정이 없습니다("이전" 비밀번호 로그인 프로그램을 사용하는 모든 유료 사용자에게 문제를 일으키지는 않습니다. 그렇죠?).
- 이제 비비즈니스 Google 계정에는비밀번호 기반 IMAP/SMTP 로그인을 허용하거나 비활성화하도록 설정("보안 수준이 낮은 애플리케이션"). 수년간 사용된 Google 계정은 자동으로 차단을 선택 해제할 수 있지만 이것이 모든 사람에게 발생하는 것은 아닙니다.
먼저 웹 브라우저를 사용하여 GMail에 로그인한 다음 동일한 컴퓨터에서 mutt를 사용하여 로그인을 시도했습니다. 나는 노력했다TLS가 항상 사용되도록 muttrc 설정을 변경하세요.. 나는 시도했다인증 코드 링크 잠금해제. 이 모든 것이 내 멍청이가 "허용되지 않는 덜 안전한 응용 프로그램" GMail 계정을 사용하도록 하는 데 실패했습니다(그러나 다른 상황에서 로그인 문제를 해결할 수 있음). 귀하의 옵션은 다음과 같습니다:
- 요청하려면 Google 계정을 전환하세요.2단계 인증 및 앱별 비밀번호 생성돌연변이를 위해.
- mutt 1.11.0 이상으로 전환OAUTHBEARER 지원 구성.
- 보안 수준이 낮은 애플리케이션의 연결을 허용하는 Google 계정 설정을 사용하세요.
- OAuth를 수행하는 다른 IMAP 클라이언트로 이동합니다.
(내 원래 답변에 투표한 사람 - 감사합니다)
답변3
aharris88의 설명에 따르면, mutt가 Gmail 서버와 통신할 때 안전하지 않은 연결을 사용했기 때문에 Gmail은 mutt를 통한 그의 계정에 대한 액세스를 차단했습니다. 이는 귀하의 사용자 이름과 비밀번호가 암호화되지 않은 형태로 로컬 네트워크와 인터넷을 통해 전송된다는 것을 의미합니다. 일반적으로 이는 매우 나쁜 생각이므로 가능하면 피해야 합니다. Gmail은 mutt의 연결 시도를 거부하여 이러한 위험한 구성을 방지하려고 합니다. "보안 수준이 낮은 애플리케이션에 대한 액세스"를 허용하도록 Google 계정 설정을 변경하면 이 동작이 무시되므로 mutt가 안전하지 않은 방식으로 연결할 수 있습니다.
한 가지 해결책은 Gmail에 연결할 때 TLS 보안을 사용하도록 mutt를 구성하는 것입니다. 이렇게 하면 자격 증명이 일반 텍스트로 전송되지 않으므로 Google 계정 설정에서 '보안 수준이 낮은 앱 액세스'를 비활성화할 수 있습니다.
TLS를 사용하려면 mutt 구성 파일을 편집하세요.(~/.muttrc)다음과 비슷한 것:
set realname = 'Your Full Name'
set imap_user = '[email protected]'
set smtp_url = "smtp://[email protected]:587/"
set spoolfile = imaps://imap.gmail.com:993/INBOX
set folder = "imaps://imap.gmail.com:993"
set record="+[Gmail]/Sent Mail"
set postponed="+[Gmail]/Drafts"
set header_cache="~/.mutt/cache/headers"
set message_cachedir="~/.mutt/cache/bodies"
set certificate_file=~/.mutt/certificates
# These two lines appear to be needed on some Linux distros, like Arch Linux
set ssl_starttls = yes
set ssl_force_tls = yes
또한 다음 명령을 실행하여 mutt가 메시지 정보를 캐시하고 인증서를 저장하는 데 사용할 디렉터리와 파일을 만듭니다.
mkdir -p ~/.mutt/cache/bodies
mkdir ~/.mutt/cache/headers
touch ~/.mutt/certificates
mutt 구성 파일의 3-5행은 mutt에게 보안 포트와 프로토콜을 사용하여 Gmail에 연결하라고 지시합니다. 반드시 기입해주세요.'당신의 이름'라인 1에서 교체"귀하의 계정"2행과 3행에 있습니다. 마지막 두 줄은 mutt가 연결을 보호하도록 강제하며 일부 Linux 배포판에서는 필요할 수 있습니다. 나머지 구성은 mutt가 Gmail에서 잘 작동하도록 만드는 매우 일반적인 구성입니다.
대부분의 시스템에는 이미 OpenSSL이 설치되어 있지만 시스템에 OpenSSL(또는 이와 유사한 것)도 설치되어 있어야 합니다.
이제 시작해 보겠습니다. Gmail 계정 비밀번호를 입력하라는 메시지가 표시됩니다. Gmail 서버에서 보낸 인증서를 수락하라는 메시지가 표시될 수도 있습니다. 받은편지함이 보이면 모든 준비가 완료된 것입니다!
여전히 연결할 수 없다면 mutt가 안전하게 연결하지 못하는 다른 이유가 있을 수 있습니다. 실행해 보세요: mutt -v
mutt 버전 및 컴파일 옵션을 표시합니다. 출력의 컴파일 옵션 섹션에서 또는 와 +USE_SSL
유사한 항목을 찾으십시오 . 옆에 더하기 기호가 있는 항목이 없으면 mutt는 컴파일 후 TLS에 연결할 수 없으므로 다시 컴파일해야 합니다.+USE_SSL_OPENSSL
+USE_SSL_GNUTLS
또 다른 가능성은 OpenSSL(또는 이와 동등한 SSL 패키지)이 시스템에 아직 설치되지 않은 것입니다. 설치 방법은 사용 중인 Linux/Unix 배포판에 따라 다릅니다. 배포판과 관련된 가이드를 검색해 보세요. 인증 기관이 포함된 추가 패키지를 설치해야 할 수도 있습니다.
일단 작업을 하고 나서 mutt를 실행할 때마다 Gmail 비밀번호를 입력하고 싶지 않다면 Gmail 비밀번호를 다음 폴더에 직접 저장할 수 있습니다.~/.muttrc파일에 다음 줄을 추가합니다.
set imap_pass = 'yourpassword'
그러나 이는 보안 위험을 초래한다는 점에 유의하세요., 특히 다른 사용자와 시스템을 공유하는 경우. 이러한 위험을 줄이려면 다음을 수행하십시오.~/.muttrc다음을 실행해야만 읽을 수 있습니다.
chmod 600 ~/.muttrc
이렇게 하면 루트가 아닌 사용자와 시스템에서 실행 중인 서비스가 ~/.muttrc 파일에 저장된 비밀번호를 읽을 수 없습니다.
답변4
mutt에 대한 애플리케이션별 비밀번호를 생성합니다: https://support.google.com/accounts/answer/185833 https://security.google.com/settings/security/apppasswords