힘내 푸시 결과 "인증 실패"


704

나는 잠시 동안 Github에서를 사용하고 내가 함께 잘왔다 git add, git commit그리고 git push지금까지 아무런 문제. 갑자기 다음과 같은 오류가 발생했습니다.

치명적 : 인증 실패

터미널에서 리포지토리를 복제하고 파일을 작업 한 다음 git add커밋 로그에 파일을 추가하고 사용 했을 때 git commit정상적으로 작동했습니다. 마지막으로 git push사용자 이름과 비밀번호를 묻습니다. 나는 그것들을 올바르게 넣었고 이것을 할 때마다 동일한 오류가 발생합니다.

누구 든지이 문제의 원인이 무엇이며 어떻게 해결할 수 있는지 알고 있습니까?

내용 .git/config은 다음 과 같습니다.

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = http://www.github.com/######/Random-Python-Tests
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        name = #####
        email = ############

github의 사용자 이름은 무엇이며 .git / config의 내용은 무엇입니까?
mnagel

질문에 추가하여, 코멘트 긴 텍스트에 대처 해달라고
mnagel

그래, 미안, 나는 습관에서 코멘트를 시작했다가 변경했다.
zkirkland

귀하의 URL이 올바르지 않습니다. 나는 그것이 시작해야한다고 생각 https://하지 http://.
존 Szakmeister

https로 변경되었습니다 ... 작동하지 않았습니다.
zkirkland

답변:


1201

Github 계정에서 2 단계 인증을 활성화 한 경우 계정 비밀번호를 사용하여 HTTPS를 통해 푸시 할 수 없습니다. 대신 개인 액세스 토큰을 생성해야합니다. 이것은 Github 계정의 응용 프로그램 설정에서 수행 할 수 있습니다. 이 토큰을 비밀번호로 사용하면 HTTPS를 통해 원격 저장소로 푸시 할 수 있습니다. 평소처럼 사용자 이름을 사용하십시오.

https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/

https로 설정된 경우 리포지토리의 원본을 업데이트해야 할 수도 있습니다.

git remote -v 
git remote remove origin 
git remote add origin git@github.com:user/repo.git  

5
과연. +1. PAT를 여기에 stackoverflow.com/a/19223896/6309에 제시 하고 거기에 프로세스를 자세히 설명하십시오 : stackoverflow.com/a/18607931/6309
VonC

3
2FA를 활성화 한 후 정상적인 Git 작업이 작동하려면 rsa 키를 새로 생성해야했습니다.
R11G

5
감사합니다! 방금이 오류가 있었고 도움이되었습니다. 개인 액세스 토큰을 만든 후에는이를 복사 한 후 리포지토리를 푸시 할 때 사용자 이름과 비밀번호를 묻습니다. 암호에 액세스 토큰 붙여 넣기
pourmesomecode

87
git remote add origin https://username:access-token@github.com/username/repo.git개인 액세스 토큰을 저장할 수도 있습니다 .
mailmindlin

2
저에게 필요한 것은 GitHub 계정의 로컬 컴퓨터에서 SSH 인증을 활성화 한 다음 ssh git remote address로 전환하는 것입니다. help.github.com/articles/changing-a-remote-s-url
user5359531

601

저장된 자격 증명을 편집하거나 제거하려면 다음 단계를 수행하십시오.

  1. 시작을 클릭하십시오
  2. 유형 : 자격 증명 관리자 (Windows 10의 경우 "시작-> 설정"아래에 있습니다. 그런 다음 "인증 정보 관리자"를 검색하십시오)
  3. 참고 항목 Windows Credentials Manager바로 가기를 응용 프로그램을 두 번 클릭하여 엽니 다.
  4. 앱이 열리면 Windows Credentials탭을 클릭 하십시오.
  5. 제거 / 업데이트 할 자격 증명을 찾으면 "git :"로 시작하고 "ada :"로 시작할 수 있습니다.
  6. 신임 정보 항목을 클릭하면 항목의 세부 사항보기가 열립니다.
  7. 필요에 따라 편집 또는 제거를 클릭하고 확인하십시오.
  8. 세척하고 헹구고 필요에 따라 반복하십시오.

여기에 이미지 설명을 입력하십시오


2
제 경우에는 "Windows 자격 증명"이 아니라 "일반 자격 증명"에 있습니다. 자격 증명을 제거하고 트릭을 수행하십시오.
Toni Gamez

8
> "제어 / 이름 Microsoft.CredentialManager"- 당신은 (윈도우 + R)에 의해 위의 창을 열 수 있습니다
Sufiyan 안사리

자격 증명이있을 수 있지만 앞에 'git :'이 없습니다. 그것은 작동하지 않을 것입니다. 'git :'로 시작해야합니다
Marques

1
고용주는 Windows 인증을 Git Hub로 설정했기 때문에 Windows 자격 증명을 변경할 때마다 소스 제어를 위해 업데이트해야했습니다. 당신의 대답은 효과가있었습니다.
shary.sharath

1
환상적인 답변. 내부 BitBucket 리포지토리를 유지 관리하며 각 계정 자격 증명이 조직에 인증됩니다. 최근에 모든 리포지토리에서 코드 변경을 추진할 수 없습니다. 사례별로 자격 증명을 변경할 수 있었지만 모든 프로젝트에 대해 자격 증명을 변경하고 싶지는 않았습니다. @Pradeep의 접근 방식을 사용하면 단순한 암호 변경 이상의 근본적인 원인을 해결할 수있었습니다. 우리 조직은 최근 내부 도메인의 이름을 변경 했으므로 자격 증명을 중앙에서 편집하여 모든 프로젝트를 수정할 수있었습니다.
Michael M

79

이것은 나를 위해 일했으며 내 자격 증명을 기억합니다.

  1. gitbash를 실행

  2. repo 디렉토리를 가리 킵니다.

  3. 운영 git config --global credential.helper wincred


18
Windows 제어판의 자격 증명 관리자를 사용하여 그 기능을 알아내는 데 시간이 걸렸습니다. 사용을 중지하려면 : git config –global credential.helper unset Source이 답변에 대한 자세한 내용을 참조하십시오 .
Ian W

7
@IanW 무슨 뜻 git config --global --unset credential.helper인가요? 그것이 Git Bash에서 나를 위해 일한 것입니다.
Ellen Spertus 17

1
이 명령을 사용하면 자격 증명 도우미의 실제 경로가 단순히 필요하지 않은 "승리"로 바뀔 것입니다.
amarax 2016 년

2
이 명령을 실행하여 내가 원하는 것이 아니라는 것을 알았습니다 git config --global --unset credential.helper. 설정을 해제하는 올바른 방법은 입니다. 궁극적으로으로 올바른 설정을 복원했습니다 git config credential.helper store.
Omar

이것은 나를 도와줍니다! 감사!
Jefsama

69

git account 최근에 비밀번호를 변경 했습니까? git pushwith -u옵션을 사용해보십시오.

git push -u origin branch_name_that_you_want_to_push

위의 명령을 실행하면 업데이트 된 비밀번호를 제공하는 비밀번호를 묻습니다.

그것이 당신을 도울 수 있기를 바랍니다


이 작동, 내 환경 https만 필요
BMW

1
확실히 대부분의 답변보다 훨씬 쉽습니다. (그리고 비밀번호 변경은 인증 오류가 발생하는 가장 일반적인 이유입니다 ;-))
Michel

기존 클론에서이 문제가 발생하는 경우git push -u
Ajay Chebbi

64

먼저 올바른 URL을 사용해야합니다.

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

그런 다음 이전에 작동했고 사용자 이름을 요청하지 않은 경우 여기에 설명 된$HOME/.netrc 대로 자격 증명 (로그인 / 암호)을 파일에 저장했기 때문 입니다. 해당 설정을 다시 확인하고 프록시가있는 경우 프록시가 변경되지 않았는지 확인할 수 있습니다.

그래도 작동하지 않으면 ssh url로 전환하십시오.

git remote set-url origin git@github.com:zkirkland/Random-Python-Tests.git

그러나 이는 계정 설정 에서 ssh 공개 키를 게시했음을 의미합니다 .


9
HTTPS에서 SSH로 전환하면 문제가 해결되었습니다.
leymannx

3
내 GH 계정에 2 단계 인증을 사용하고 HTTPS에서 원격 URL을 SSH로 전환하면 "인증 실패"문제가 해결되었습니다. 맞는 말이다. 감사!
Walter Roman

55

git 서비스 계정 (Git)의 로그인 또는 비밀번호를 변경하면 발생합니다. Windows 자격 증명 관리자 에서도 변경해야합니다 . Windows 검색 메뉴에서 "Credential Manager"를 입력하십시오.

Windows 신임 정보 관리자-> Windows 신임 정보 및 일반 신임 정보에서 git 비밀번호를 편집하십시오.


4
이것은 GitLab과 함께 일할 때 저를 구했습니다. 감사!
존 험프리-w00te

2
이 Windows 자격 증명 관리자에 대해 들어 본 적이 없습니다 .... 감사합니다!
Sam

1
새 파일을 원격 저장소로 푸시하는 동안 Git에서 사용자 ID와 비밀번호를 입력하라는 메시지가 표시되면 잘못된 자격 증명을 제공했습니다. 푸시 명령을 다시 실행했을 때 git은 자격 증명을 요구하지 않고 대신 인증 실패 오류 만 발생했습니다. 이 답변을 읽은 후 git이 자격 증명 관리자에 저장된 자격 증명을 사용한다는 것을 깨달았으므로 원격 저장소에 푸시 할 때마다 git이 암호를 묻는 메시지가 표시되지 않아야합니다. 자격 증명 관리자에서 자식 암호를 삭제 한 후 git에서 다시 사용자 ID와 암호를 묻는 메시지를 표시했습니다.
Jchenna

41

기본적으로 자격 증명이 만료되어 위의 문제에 직면했습니다.

다음 2 가지 명령이 도움이되었습니다.

git config --global --unset credential.helper

git config credential.helper store

다음에 푸시하려고 할 때 자격 증명을 요구합니다.

보안 및 보안되지 않은 사용자 이름 및 비밀번호 저장에 대한 자세한 내용은 아래 지침을 따르십시오.

https://git-scm.com/docs/git-credential-store

https://git-scm.com/docs/git-credential-cache


이것은 Github에서 비밀번호를 변경하고 자격 증명을 로컬로 변경하지 않은 후에 저에게 효과적이었습니다.
스콧

33

올바른 비밀번호와 사용자 이름을 입력했을 때 인증 오류 문제가 발견되면 자식 문제입니다. 머신에 git을 설치할 때이 문제를 해결하려면 git credential manager 사용을 선택 취소하십시오여기에 이미지 설명을 입력하십시오


1
이것은 내 문제를 해결
user1929819

고정 광산도. 정말 고마워!
Brian Edwards

이 유형의 솔루션을 찾지 못했습니다. 나는 자식을 다시 설치했습니다
Hoque MD Zahidul

내 문제도 해결했습니다 (git이 설치되어 있으며 다시 확인하지 않고 다시 설치했습니다 : 그리고 괜찮습니다!)
manatlan

1
"기본 Windows 보안 채널 라이브러리 사용"도 확인해야했습니다. 기본적으로 선택되어 있지 않습니다.
doptrois

25

어떤 이유로 든 GitHub는 URL에 하위 도메인 www가 없을 것으로 예상합니다. 내가 사용하는 경우 (예를 들어)

git remote set-url origin https://www.github.com/name/repo.git

다음과 같은 메시지가 나타납니다.

remote: Anonymous access to name/repo.git denied
fatal: Authentication failed for https://www.github.com/name/repo.git

그러나 내가 사용하면

git remote set-url origin https://github.com/name/repo.git

완벽하게 작동합니다. 나에게는별로 이해가 되지 않지만 ... GitHub 리포지토리의 원격 URL에 www를 넣지 마십시오.

또한 GitHub 리포지토리 웹 페이지에 제공된 클론 URL에는 www가 포함되어 있지 않습니다.


4
"github.com"에 "www"를 넣지 마십시오. 중요한 점 때문에 Github은 "www"를 사용하여 복제 할 수 없도록 사이트를 수정해야합니다.
John Nagle

1
고맙습니다 :) 내 URL에 .git이 누락 되어이 주석으로 살펴보고 알아 냈습니다.

19

안녕하세요, 같은 오류가 발생 하여이 페이지에서 언급 한 모든 솔루션을 시도했지만 작동하지 않았습니다. 마지막으로 해결책을 찾았으므로 게시를 생각했습니다. 내가 어딘가 잘못하면 저를 정정하십시오. 때때로 시스템 암호가 최근에 변경된 경우 이러한 종류의 오류가 발생합니다. 이전 비밀번호를 확인하려고 시도합니다. 따라서 다음 단계를 수행하십시오.

  1. 제어판으로 이동
  2. 사용자 계정을 클릭하십시오
  3. 자격 증명 관리자에서
  4. Windows 자격 증명 관리로 이동
  5. 일반 자격 증명으로 이동
  6. 자식 서버 탭 펼치기
  7. 볼트에서 제거를 클릭하십시오

    • 또한 편집을 클릭하고 여기에 저장된 비밀번호를 직접 변경할 수 있습니다.

10

Windows 암호가 만료되어 변경된 후 "$ git fetch fatal : 'http : // ...."에 대한 인증에 실패했습니다. Windows 자격 증명 관리자를 사용하여 여러 가져 오기, 재부팅 및 심지어 git 다시 설치해도 도움이되지 않았습니다.

놀랍게도 여기에 어딘가에 정답이 있지만 대답은 아닙니다 (그리고 그들 중 일부는 정말 이상합니다!). 제어판-> 자격 증명 관리자 / Windows 자격 증명으로 이동하여 자식 암호를 업데이트해야합니다 : http : // yourrepoaddress


9

이 오류가 발생하기 위해 무엇을했는지 확실하지 않지만 다음을 수행합니다.

git remote set-url origin https://...

나를 위해 일하지 않았다. 하나:

git remote set-url origin git@bitbucket.org:user/repo

어떻게 든 일했다.


3
당신은 HTTPS에서 SSH로 전환
제임스 Wierzba에게

그것은 나를 위해 작동합니다. 이것은 마술이 아닙니다 .https 액세스 (사용자 / 패스 + MFA)를 위해 선택되지 않은 ssh 액세스 구성 (공개 키 구성)을 저장했기 때문입니다.
Daniel Dubovski

8

나는 같은 문제가 있었다. 그런 식으로 URL을 설정했습니다.

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

또한 구성 파일에서이 항목을 제거했습니다 askpass = /bin/echo. 그런 다음 "git push"에서 사용자 이름과 비밀번호를 물었고 이번에는 작동했습니다.


구성 파일에서이 항목을 제거하지 않아도됩니다 askpass = /bin/echo.
다리우스 Miliauskas

5

필자의 경우 최근에 Windows 비밀번호를 변경했으며 "치명적 : 인증 실패"오류가 발생한 후 git 관련 조치 (풀, 푸시, 페치 등)에 대해 SSH 키를 구성했습니다. git : ...로 시작하고 다시 시도한 모든 항목에 대해 자격 증명 관리자 (제어판 \ 사용자 계정 \ 인증 관리자)가 이번에 작동했습니다!



3

Github 계정에서 2 단계 인증을 활성화 한 경우 GitHub 계정에 로그인 한 후 https://github.com/settings/tokens/new 로 이동하여 새 액세스 토큰을 생성하고 해당 토큰을 복사하여 붙여 넣기 터미널 인증을위한 비밀번호.


2

Windows를 사용 중이고 도메인 사용자가 저장소 사용자 (TFS)로 작업하는 Windows 서버로 푸시하려는 경우 http:\\tfsIE를 사용 하여 TFS URL (예 :)로 들어가보십시오 . 도메인 계정 자격 증명을 입력하고 페이지를 표시하십시오.

주의 에만 인터넷 익스플로러를 사용! 다른 브라우저는 시스템 자격 증명을 변경하지 않습니다.

이제 git bash로 이동하여 아래와 같이 저장소의 원격 사용자를 변경하십시오.

git config user.name "domainName\userName"

그리고 이제, 당신은 밀 수 있습니다!


1

저에게는 Github.com에서 비밀번호를 변경 한 것을 잊었으며 쉘 인증을위한 키 체인은 그 새로운 비밀번호로 업데이트되지 않았습니다. 내 키 체인에서 모든 자식을 삭제 한 다음 자식 요청을 다시 실행하면 문제를 해결하는 데 도움이되어 새 암호를 다시 묻습니다.


1

여기에서 차임하기 위해, 나를 위해 문제를 해결 한 것은 초기 프롬프트에서 간단히 취소하고 ssh 하나가 내 비트 버킷 계정으로 열리고 거기에 암호를 입력하면 모든 것이 예상대로 작동했습니다.


1

나는 창문에서 같은 문제에 직면했다. 대부분의 경우 일반적으로 여러 git 계정을 사용하여 문제에 직면합니다. Windows를 사용하는 경우 관리자로 터미널을 열고 명령을 다시 실행하십시오. 관리자 액세스 권한이 있는지 확인하십시오.


1

Git과 연결된 Bitbucket에 추가하고 저장된 키를 제거해야했습니다. 이로 인해 치명적인 오류가 발생했습니다.

해결하기 위해 명령 프롬프트를 열고 실행했습니다.

 rundll32.exe keymgr.dll, KRShowKeyMgr

로그인을 담당 한 키를 제거하고 다음에 파일을 리포지토리로 푸시 할 때 자격 증명을 입력하라는 메시지가 표시되고 올바른 자격 증명을 입력하여 성공적인 푸시를 수행했습니다.


0

나는 또한 오류 (내가 여기에 도착한 이유)에 부딪쳤다. 로컬 Git을 배포하려고 시도한 것은 이번이 처음이었습니다. 이 오류가 발생하면 몇 번의 시도 후 Azure에서 링크를 클릭하여 자격 증명을 다시 설정합니다. 문제는이 시점에서 내 사용자 이름이 이미 사용되었다는 것을 알려주므로 사용자 이름을 다른 이름으로 변경했습니다. 결국 로컬 드라이브에서 .git 폴더를 수동으로 삭제하고 문제없이 재배치했습니다.


0

문제 설명 : "git fatal authentication failed". 비트 버킷을 사용하고 있습니다.

솔루션 : 비트 버킷의 액세스 관리를 사용하여 사용자를 삭제 한 다음 동일한 사용자를 추가했습니다. .gitconfig 파일은 간단합니다

[user]
    name = BlaBla
    email = blabla@gmail.com

[push]
    default = simple

0

문제가 우세한 경우 올바른 자격 증명

androidstudio 2.1 베타를 사용하는 경우 버그, 베타 2 (3 mb 업데이트 파일)로 업그레이드하면 이것이 효과적입니다.



0

ssh 키가 현재 ssh 세션에 추가되어 있는지 확인하십시오.

  1. cat ~/.ssh/id_rsa.pubSSH 및 GPG 키 아래 의 출력을 GitHub 설정으로 복사하십시오 .

  2. 현재 ssh 세션을 ssh-add ~/.ssh/id_rsa.pub

Openssh가 설치된 Windows Powershell을 사용하고 있습니다.


0

Android Studio Canary 빌드 3.1 이상에서는 Android Studio git 도구를 사용하는 경우 다음을 사용할 수 있습니다.

  • Android Studio를 클릭하십시오
  • 환경 설정 ...을 클릭하십시오.
  • VersionControl에서 이동-> Github
  • 인증 유형을 비밀번호로 변경
  • 이 단계에서는 로그인 및 비밀번호를 입력해야합니다. github 사용자 이름을 로그인으로, github 비밀번호를 비밀번호로 입력하십시오.
  • 테스트 버튼을 클릭하십시오.

연결에 성공하면 완료된 것보다 Android Studio github UI 클라이언트를 사용할 수 있습니다.


0

ssh를 사용하고 https로 복제 된 경우 작동하지 않습니다. ssh로 복제 한 다음 밀고 당기면 예상대로 작동합니다!


0

이 질문이 현재 git의 http 인증 문제에서 가장 큰 인기를 얻었으므로 이것이 실질적으로 도움이되는 경우 : Windows Credential Manager가 암호를 올바르게 저장했으며 Git LFS를 사용했기 때문에 일반적인 ssh : / 대신 http URL을 구성했습니다. / .

내 문제는 회사 비밀번호 정책이 계정 비밀번호 변경을 강요했지만 저장된 자격 증명을 업데이트하지 않았다는 것입니다 (항상 ssh 키를 사용하기 때문에).

Wincred GUI에서 직접 암호를 업데이트하는 것만으로 효과가 있습니다. git:https://<your-url>항목을 찾으십시오 .


0

이것은 Gitlab에서 로그인하기 전에 "2 단계 인증"을 강요 한 후에 발생했습니다. id_rsa.pub 안의 텍스트를 Gitlab에 붙여 넣은 다음 터미널을 사용하여 VS 코드로 리포지토리를 다시 도입해야했습니다.

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