AuthMech XOAUTH2를 사용하여 mbsync 구성

AuthMech XOAUTH2를 사용하여 mbsync 구성

mbsyncUbuntu에서 xoauth2 플러그인을 찾을 수 없기 때문에 Gmail에서 OAuth를 사용하는 방법을 알 수 없는 것 같습니다 mbsync. OAuth에 대해 구성된 모든 것이 제대로 작동한다고 sasl확신합니다 mbsync(예: PassCmd가 액세스 토큰을 성공적으로 생성하는지 수동으로 테스트).

편집 : sasl-binapt를 통해 설치했으며https://github.com/robn/sasl2-oauth소스에서.


질문

  • sasl플러그인을 수동으로 "등록"하려면 어떻게 해야 합니까 mbsync? (일명 아래에 붙여넣은 첫 번째 로그의 "사용 가능한" SASL 메커니즘 목록에 추가)
  • 이 문제는 내 "이메일 스택"의 다른 구성 요소로 인해 발생합니까? 내가 읽은 일부 스레드에서는 mutt를 소스에서 다시 컴파일하라고 제안하지만 왜 mutt가 인증 문제를 일으키는지 이해할 수 없습니다.

mbsyncinstall via를 사용하여 nix-env통과할 수 없습니다.

C: 0/1  B: 0/0  M: +0/0 *0/0 #0/0  S: +0/0 *0/0 #0/0
IMAP error: selected SASL mechanism(s) not available;
   selected: XOAUTH2
   available: GS2-IAKERB GS2-KRB5 SCRAM-SHA-1 SCRAM-SHA-256 GSS-SPNEGO GSSAPI DIGEST-MD5 EXTERNAL OTP CRAM-MD5 PLAIN LOGIN ANONYMOUS
C: 1/1  B: 0/0  M: +0/0 *0/0 #0/0  S: +0/0 *0/0 #0/0

나는 또한 mbsync/isyncapt에서 재설치하고 isync소스에서 빌드를 시도했습니다. 두 가지 모두 다음 오류가 발생합니다.

Notice: Master/Slave are deprecated; use Far/Near instead.
C: 0/1  B: 0/0  F: +0/0 *0/0 #0/0  N: +0/0 *0/0 #0/0
Error: SASL(-1): generic failure: Unable to find a callback: 32775
C: 1/1  B: 0/0  F: +0/0 *0/0 #0/0  N: +0/0 *0/0 #0/0

답변1

이전 팁에 감사드립니다. SASL에서 XOAUTH2를 작동시키고 mbsync와 함께 사용할 수 있었습니다. Ubuntu 20.10에서 실행하는 방법은 다음과 같습니다.

사이러스 SASL OAuth2 설치

# Clone the Cyrus SASL OAuth2 sources.
git clone https://github.com/moriyoshi/cyrus-sasl-xoauth2.git

# Configure and make.
cd cyrus-sasl-xoauth2
./autogen.sh
./configure

# SASL2 libraries on Ubuntu are in /usr/lib/x86_64-linux-gnu/; modify the Makefile accordingly
sed -i 's%pkglibdir = ${CYRUS_SASL_PREFIX}/lib/sasl2%pkglibdir = ${CYRUS_SASL_PREFIX}/lib/x86_64-linux-gnu/sasl2%' Makefile

make
sudo make install

# Verify XOAUTH2 is known to SASL.
saslpluginviewer | grep XOAUTH2

MB 동기화

이전 버전(1.3.1?까지)은 PassCmd 버퍼를 80으로 설정합니다. 이는 OAuth2 토큰에 충분하지 않습니다. 현재 1.4.0을 컴파일했습니다.

# Clone the isync/mbsync 1.4 sources.
git clone --branch 1.4 --depth 1 https://git.code.sf.net/p/isync/isync isync-isync

# Configure and make.
cd isync-isync
./autogen.sh
./configure
make

mutt_oauth2.py

다음에서 mutt_oauth2.py를 다운로드하세요.https://gitlab.com/muttmua/mutt/-/blob/master/contrib/mutt_oauth2.py그리고 실행 가능하게 만드세요.

OAuth2 토큰을 사용하여 소켓을 생성하는 수정된 버전이 있습니다. 이렇게 하면 소켓을 통해 토큰에 액세스할 수 있습니다.

curl --unix-socket ~/.mutt/oauth2.socket x

마일리지는 다를 수 있으며 OAuth2 토큰에 액세스하려면 다른 PassCmd가 필요합니다.

mbsyncrc

XOAUTH2를 사용하도록 mbsync를 구성하고 PassCmd를 설정합니다. 위의 컬 명령을 실행합니다.

IMAPAccount <account-name>
Host outlook.office365.com
User <[email protected]>
AuthMechs XOAUTH2
PassCmd "curl --unix-socket ~/.mutt/oauth2.socket x"
SSLType IMAPS
SSLVersions TLSv1.1 TLSv1.2

그러면 mbsync가 예상대로 작동합니다. 아래 컬의 출력을 참고하세요.

$ mbsync -a
C: 0/1  B: 0/0  F: +0/0 *0/0 #0/0  N: +0/0 *0/0 #0/0  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1963    0  1963    0     0   479k      0 --:--:-- --:--:-- --:--:--  479k
C: 1/1  B: 15/15  F: +0/0 *0/0 #0/0  N: +847/847 *0/0 #0/0

답변2

Ubuntu 22.10에 설치하면 libsasl2-modules-kdexoauth2"IMAP 오류: 선택한 SASL 메커니즘을 사용할 수 없습니다." 문제가 해결되었습니다.

답변3

나는 같은 문제로 어려움을 겪고 있습니다. 다음은 도움이 될 수 있는 몇 가지 리소스입니다.

  1. https://bbs.archlinux.org/viewtopic.php?id=238727
  2. https://isync-devel.narkive.com/i6h4k9hB/mbsync-xoauth2-and-gmail
  3. http://blog.onodera.asia/2020/06/how-to-use-google-g-suite-oauth2-with.html

오류를 성공적으로 수정하지 못했지만 필요한 것 같습니다.https://www.cyrusimap.org/sasl/설치하다. 다음으로 다음 플러그인 중 하나를 사용하세요.

도움이 되길 바랍니다. 나는 이 일을 해낼 수 있는지 계속해서 노력할 것이다.

관련 정보