https를 통한 GitHub 인증 실패, 잘못된 이메일 주소 반환


128

사용자 이름과 비밀번호를 요청하는 명령 줄 (ssh가 아닌 https를 통해)에서 GitHub를 사용하여 푸시 또는 기타 작업을 시작하면 실패 할뿐만 아니라 실패하면

Username for 'https://github.com': username
Password for 'https://username@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/username/repository.git/'

@github.com주소 가 없습니다 . 비밀번호와 사용자 이름이 정확합니다.

SSH로 전환하고 키를 사용할 수는 있지만 인증이 https를 통해 실패하는 이유에 대해서는 답변하지 않습니다.


설명서 git-scm.com/book/en/… git-config-리포지토리 또는 전역 옵션 가져 오기
John Smith

답변:


171

GitHub의 지원으로 문제의 근본이 바로 결정되었습니다 : 이중 인증.

https로 쉘에서 GitHub를 사용하려면 OAuth 토큰을 작성 하십시오 . 페이지 노트에서 알 수 있듯이 Keychain에서 사용자 이름 및 비밀번호 자격 증명을 제거해야했지만 osx-keychain토큰이 비밀번호로 저장되고 2 단계 인증없이 https와 동일한 방식으로 작동합니다.


4
+1. 또한 암호화 된 netrc에서 PAT (Personal Access Token)를 사용할 수 있습니다 : stackoverflow.com/a/18607931/6309
VonC

PAT와 OAuth의 차이점은 무엇입니까?
lindhe

@lindhe OAuth 토큰은 토큰 유형이며,이 경우 PAT는 OAauth 토큰입니다.
Kerry Jones

22

@github.com주소 가 없습니다

(가) : 당신은없는 @암호 및 도메인 : 사용자 이름 사이의 분리입니다.
이메일 주소가 아닙니다.

전체 GitHub https URL은 다음과 같습니다.

https://username:password@github.com/username/reponame.git

암호가 없으면 (명령 줄에서 묻는) 다음과 같이 나타납니다.

https://username@github.com/username/reponame.git

그러나 다시 한 번, username@github.com이메일 주소가 아니며 자격 증명의 첫 부분 일뿐입니다.

반드시 당신의 경우를 확인 username하고 reponame올바른 : 이 대소 문자를 구분합니다 .

URL에 해당 자격 증명을 명확하게 표시하지 않으려는 경우 자격 증명을 .netrc.gpg(또는 _netrc.gpgWindows)에 저장하고 암호화 할 수 있습니다 .
" 사용시 비밀번호 입력을 건너 뛸 수있는 방법이 있습니까?https://github "를 참조하십시오 .


매번 암호를 입력하여 암호를 그대로 둘 수도 있습니다. 이 경우에 그렇습니다 https://username@github.com/username/reponame.git.
Mark Hildreth가

오, 말이 되네요 감사합니다. 대소 문자 구분에 대해 알고 있으며 제공하는 사용자 이름과 비밀번호가 정확하다고 확신합니다. (그들은 웹 사이트에 로그인하기 위해 잘 작동합니다.)
ele

2
@ele 예,하지만 비밀번호에 특수 문자 (예 :)가 포함되어 ! * ' ( ) ; : @ & = + $ , / ? # [ ]있습니까? 그것들은 "백분율 인코딩"( en.wikipedia.org/wiki/Percent-encoding ) 이어야 합니다.
VonC

비밀번호는 영숫자입니다. 기계 옆에있을 때 'git remote -v'가 제공하는 것을 볼 수 있지만 다음에 GitHub 지원에 문의해야 할 것 같습니다.
ele

@ele는 먼저 .netrc 접근법을 시도하십시오 (테스트하기 위해 암호화하지 마십시오). 그래도 작동하지 않으면 GitHub 지원이 실제로 다음 단계입니다.
VonC

21
  • 자격 증명 관리자로 이동 => Windows 관리자
  • tfs와 관련된 모든 것을 삭제하십시오
  • 이제 일반 신임 정보 추가를 클릭 하고 다음 값을 제공하십시오.

    (1) 인터넷 또는 네트워크 주소 : 자식 : https : //tfs.donamain 이름 (2) 사용자 이름 : 사용자 이름 (3) 비밀번호 : 비밀번호

    이 문제를 해결해야합니다


와. 암호를 잘못 입력하면 암호를 저장하는 방법이 마음에 듭니다. 그런 다음 수동으로 업데이트하거나 삭제해야합니다.
Kolob Canyon

10

이전에 다른 자격 증명을 저장 한 경우 Windows에서 발생할 수 있습니다. 자격 증명 관리자로 이동하여 저장된 github 자격 증명을 삭제하십시오.


1
Windows 자격 증명 관리자의 암호를 새 암호로 직접 편집 할 수도 있습니다.
Spenhouet


8

github에 대해 양방향 인증을 활성화했을 때도 같은 일이 일어났습니다. 내가 해결 한 것 :

  • 개인 액세스 토큰을 받으십시오. 사용 가능하지 않은 경우이를 확인하고 생성해야합니다. 이에 대한 링크 : https://github.com/settings/tokens
  • 로컬로 이동하여 폴더를 삭제하고 github에서 브랜치를 다시 복제하십시오.
  • 이제 이전에 시도했던 명령, 즉 git pull origin master를 사용해보십시오.
  • 사용자 이름과 비밀번호 입력에 생성 된 토큰을 붙여넣고 해당 토큰을 어딘가에 저장하는 것을 잊지 마십시오. 필요한 경우 재사용 할 수 있습니다.

이렇게하면 문제가 해결됩니다.


좋은 설명 선-이것은 맥에서 나에게 일어나고 있었다
SliverNinja-MSFT 2

이전에 생성 된 토큰에없는 권한을 사용해야하는 경우 토큰을 생성해야합니다. 또한 이전 토큰을 잃어버린 경우이 새 토큰을 생성하고 원래 자식 암호 대신 인증을위한 암호로 사용할 수 있습니다.
Mohd Belal

5

이것이 다른 사람에게도 도움이되는 경우를 대비하여 Mac 응용 프로그램에 로그인하고 명령 줄이 제대로 작동하지만 2FA를 켰기 때문에 명령이 오류를 반환했습니다. 나는 앱에서 로그 아웃해야했고, 여기에 ele의 대답에 따라 내 명령에 내 개인 액세스 토큰을 사용할 수 있습니다 .

잘만되면 그것은 누군가를 돕는다!


-2

Windows에서는 바이러스 백신 또는 Windows 방화벽에 의해 자동으로 차단 될 수 있습니다. 해당 서비스를 일시적으로 끄고 원격 원점에서 푸시 / 풀합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.