'git credential-osxkeychain'에 저장된 자격 증명을 어떻게 재설정합니까?


98

계정 설정에 대한 GitHub 지침을 따랐고 복제 할 수 있지만 원격으로 푸시 할 수 없습니다.

"git push"를하면 403 오류가 발생합니다. 올바른 URL이 있습니다. 나는 "git credential-osxkeychain get"을 시도하여 그것이 무엇을 제공하는지 확인했는데 이것은 잘못된 자격 증명을 출력합니다.

나는 그것이 처음으로 자격 증명을 요청했을 때 일어난 일이라고 믿고, 다른 응용 프로그램이 요청하는 것으로 생각하고 잘못된 것을 넣었습니다.

내 GitHub 계정에 올바른 키 체인 항목을 사용하도록 재설정하면됩니다.

난 노력 했어:

git credential-osxkeychain erase
git credential-osxkeychain set

프로그램은 어떤 프롬프트도 제공하지 않습니다. 내가 옳은 일을하지 않으면 세트는 "잘못된 입력"이라고 말할 것입니다. " password=password"등을 입력 하려고했지만 "get"을 할 때 여전히 오래된 것을 얻습니다.

.gitconfigure에 없기 때문에 어디에 저장되는지 알 수 없습니다. 또한 최신 키 체인 항목이 없습니다. (키 체인에 GitHub 계정이 여러 개 있으며 사용하지 않습니다.)




답변:


123

터미널에서 :

 $ git credential-osxkeychain erase
 host=github.com
 protocol=https
 <press return>

참고 : 위에 "protocol = https"를 입력 한 후 ~~ RETURN ~~ 두 번 눌러야합니다.


2
어떤 이유로 키 체인 앱에서 Git / GitHub 자격 증명을 찾을 수 없었지만 작동했습니다. 감사!
Donald

4
이것은 나에게 명확하지 않았기 때문에 위에 3 줄을 모두 입력 한 다음 Return을 다시 눌러야합니다. 즉, 위의 2/3 줄은 명령에서 출력되지 않고 입력됩니다.
Frederik

이 답변이 도움이되었습니다. 대단히 감사합니다!
Ken Flake

70

명령 줄을 통해 지우는 방법을 잘 모르겠지만 키 체인 접근 앱을 통해 지우는 것은 상당히 쉽습니다. 응용 프로그램-> 유틸리티-> 키 체인 액세스로 이동 한 다음 "github.com"을 입력하면됩니다. 유효하지 않은 항목을 삭제하거나 앱에서 비밀번호를 업데이트 할 수 있습니다.


4
이 글을 읽는 사람이 명령 줄에서 수행하는 방법을 알아 내면 알아두면 좋을 것입니다.
funroll

1
@funroll 명령 줄 도구는 security. 매뉴얼 페이지에는 delete-internet-password명령 이 있다고 나와 있습니다 .
benzado

업데이트 주셔서 감사합니다. 누군가에게 도움이 될 것이라고 확신합니다.
funroll

이 최선의 해결책이다
엘리아스 Fazel

어떤 키 체인에서?
Bryan Bryce

29

해결책은 다음과 같습니다.

이 명령 git credential-osxkeychain은 내 키 체인 의 첫 번째 GitHub 계정 항목을 사용하고있었습니다 . 이것은 문제의 프로젝트에 대한 액세스 권한이있는 사람이 아닙니다.

나는 Keychain Access에서 계정을 터치하여 날짜를 변경하고 (방금 코멘트를 변경 한 것 같습니다) 가장 최근의 GitHub 계정이되었으므로 credential-osxkeychain으로 돌아온 첫 번째 계정이되어 모든 것이 작동했습니다. .

여러 GitHub 계정에 대한 더 나은 지원 형태가 좋지만 대부분의 사람들은 기본 계정이 하나만 있고이 문제가 발생하지 않을 가능성이 높습니다.


2
동일한 호스트의 여러 사용자에게 이것이 어떻게 작동하는지 잘 모르겠지만 ~/.ssh/configOSX 키 체인을 사용하는 대신 ssh를 확인하고 파일을 사용할 수 있습니다. 이것은 다른 호스트 (및 생각하는 계정)에 대해 여러 개의 ssh 키를 가질 수있는 경우에 사용됩니다. nerderati.com/2011/03/17/...
jusopi

10

git-credential-osxkeychain은 위에서 언급 한대로 Apple 키 체인에 암호를 저장합니다.

기본적으로 gitcredentials는 도메인 이름 만 고려합니다. Git에서 전체 경로를 고려하도록하려면 (예 : 여러 GitHub 계정이있는 경우) http://git-scm.com/docs/gitcredentials.html에 설명 된대로 useHttpPath변수를로 설정합니다 . 이 설정을 변경하면 각 URL에 대해 자격 증명을 다시 요청합니다.true


7

Mac에서는 다음 명령을 사용하십시오. git credential-osxkeychain erase .

또는 응용 프로그램유틸리티키 체인 접근 에서 키 체인에서 수동으로 제거 합니다. 그런 다음 github.com 키 체인을 제거합니다. 그런 다음 푸시를 사용하십시오. 키 체인 액세스를 요청합니다. 그런 다음 거부하십시오.

새 사용자 이름과 암호를 요청하고 추가 한 다음 해당 파일을 푸시합니다.

git push이 오류를 발견 한 후 . 그런 다음 대문자 문제를 사용합니다.

remote : user1 / file.git에 대한 권한이 user2 (이전에는 user 존재 함)에게 거부되었습니다. 치명적 : ' https://github.com/xxxxxxxxxxxx/ ' 에 액세스 할 수 없음 : 요청 된 URL에서 오류를 반환했습니다 : 403



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