GitHub : 유효하지 않은 사용자 이름 또는 비밀번호 나는 할 때 ssh

GitHub에서 호스팅되는 프로젝트가 있습니다. 마스터에서 수정 사항을 푸시하려고 할 때 실패합니다. 항상 다음과 같은 오류 메시지가 나타납니다.

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

그러나 내 ssh 키를 github으로 설정해도 괜찮습니다. 사실, 나는 할 때 ssh -T git@github.comI get 및을

Hi eurydyce! You've successfully authenticated, but GitHub does not provide shell access.

어느 쪽이든 괜찮습니다 (eurydyce는 내 github 사용자 이름 임). 나는 github에 제공된 지침과 많은 스택 토론의 권장 사항을 엄격히 따르지 만 방법은 없습니다. 내가 뭘 잘못했는지 알겠 니?



답변

https : //git@github.com/eurydyce/MDANSE.git 은 ssh URL이 아니며 https URL입니다 ( ‘ git‘ 대신 GitHub 계정 이름이 필요함 ).

사용 ssh://git@github.com:eurydyce/MDANSE.git하거나git@github.com:eurydyce/MDANSE.git

git remote set-url origin git@github.com:eurydyce/MDANSE.git

OP 페예 그리니 에릭 추가합니다 :

이것이 ~/.gitconfig현재 다음 항목을 포함하는 파일에서 수행 한 작업입니다.[remote "origin"] url=git@github.com:eurydyce/MDANSE.git

이것은 전역 구성 (에있는 구성)에 없어야합니다 ~/. repo에서
확인할 수 git config -l있습니다 : 해당 URL은 로컬 구성 에서 선언해야합니다 : <yourrepo>/.git/config.

따라서 git remote set-url명령을 수행 할 때 repo 경로에 있는지 확인하십시오 .


Oliver답변 에서 언급했듯이 2 단계 인증 (2FA) 이 활성화 된 경우 HTTPS URL은 사용자 이름 / 암호를 사용하지 않습니다 .

이 경우 비밀번호는 ” 명령 줄에서 토큰 사용 “에 표시된대로 PAT (개인 액세스 토큰) 여야합니다 .

이는 HTTPS URL에만 적용되며 SSH는이 제한의 영향을받지 않습니다.


답변

두 요소 인증 (2FA)을 사용하도록 설정하면 사용하려고 할 때이 같은 것을 볼 수 있습니다 git clone, git fetch, git pull또는 git push:

$ git push origin master
Username for 'https://github.com': your_user_name
Password for 'https://your_user_name@github.com':
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/your_user_name/repo_name.git/'

왜 이런 일이 일어나는가

로부터 GitHub의 도움말 문서 :

2FA가 활성화되면 2FA 코드와 GitHub 비밀번호 대신 개인 액세스 토큰을 입력해야합니다.

이 같은 명령을 사용하여 명령 행에서 힘내를 사용하여 저장소에 액세스 할 때 예를 들어, git clone, git fetch, git pull또는 git pushHTTPS URL을, 당신은 당신의 GitHub의 사용자 이름과 사용자 이름과 암호를 입력하라는 메시지가 표시되면 토큰 개인 액세스를 제공해야합니다. 명령 행 프롬프트는 비밀번호를 요청할 때 개인 액세스 토큰을 입력하도록 지정하지 않습니다.

고치는 방법

  1. 개인용 액세스 토큰 생성 . ( 명령 행에 대한 개인 액세스 토큰 작성에 대한 자세한 안내서 )
  2. 개인용 액세스 토큰을 복사하십시오.
  3. 시도한 명령을 다시 시도하고 비밀번호 대신 개인 액세스 토큰을 사용하십시오.

관련 질문 :
https://stackoverflow.com/a/21374369/101662


답변

솔루션 단계 :

  1. 제어판
  2. 자격 증명 관리자
  3. 창 신임 정보를 클릭하십시오.
  4. 일반 자격 증명 섹션에는 git url, 업데이트 사용자 이름 및 비밀번호가 있습니다.
  5. Git Bash를 다시 시작하고 복제 시도

답변

나처럼 방금 비밀번호를 업데이트 git push하고이 문제가 발생하면 매우 쉽게 해결할 수 있습니다.

Mac 사용자에게만 해당됩니다. GitHub에 대한 OSX 키 체인 액세스 항목을 삭제해야합니다. 다음 명령을 실행하여 터미널을 통해 수행 할 수 있습니다.

명령 줄을 통해 자격 증명 삭제

명령 줄을 통해 자격 증명 도우미를 사용하여 키 체인 항목을 직접 지울 수 있습니다.

이렇게하려면 다음 명령을 입력하십시오.

git credential-osxkeychain erase
host=github.com
protocol=https

# [Now Press Return]

성공하면 아무것도 인쇄되지 않습니다. 그것이 작동하는지 테스트하려면 GitHub에서 리포지토리를 복제하거나 내 경우처럼 이전 작업을 다시 실행하십시오 git push. 암호를 묻는 메시지가 표시되면 키 체인 항목이 삭제 된 것입니다.


답변

사용하는 경우 https://원격 저장소에 연결 URL을 다음 힘내 인증으로 SSH를 사용하지 않지만 대신 기본 인증을 통해 HTTPS를 시도 할 것이다. 일반적으로 예를 들어 사용자 이름없이 URL을 사용하면 https://github.com/username/repository.gitGit은 사용자 이름 (GitHub 사용자 이름)과 비밀번호를 모두 입력하라는 메시지를 표시합니다.

를 사용하는 경우 https://something@github.com/username/repository.gitGit이 인증에 사용할 사용자 이름을 사전 설정 한 것입니다 : something. 를 사용했기 때문에 https://git@github.comGit은 git물론 암호가 작동하지 않는 사용자 이름을 사용하여 로그인을 시도합니다 . 따라서 사용자 이름을 대신 사용해야 합니다 .

대안은 실제로 인증을 위해 SSH를 사용하는 것입니다. 그렇게하면 항상 암호를 입력하지 않아도됩니다. 이미 작동하는 것 같아서 사용해야합니다.

이를 위해서는 원격 URL을 변경해야하므로 Git은 SSH를 통해 연결해야한다는 것을 알고 있습니다. 형식은 다음과 같습니다 git@github.com:username/repository.. URL을 업데이트하려면 다음 명령을 사용하십시오.

git remote set-url origin git@github.com:username/repository


답변

다시 지점으로 밀어 넣으십시오. 사용자 이름과 비밀번호를 다시 묻기 때문에 변경된 비밀번호를 입력 할 수 있습니다. 새 비밀번호가 캐시에 다시 저장됩니다.


답변

git pull시도하지 말고git pull origin master

암호를 변경했는데 첫 번째 명령에서 오류가 발생했습니다.

$ git pull
remote: Invalid username or password.
fatal: Authentication failed for ...

git pull origin master, 그것은 암호를 요구하고 스스로 업데이트하는 것처럼 보였습니다.