복제 된 GitHub 저장소는 비밀번호를 요청하지만 원래 생성 된 비밀번호는 없습니다


9

디스크에서 많은 리포지토리를 잃어 버렸으므로 GitHub에서 복제했습니다. 이제 GitHub에 무언가를 넣을 때마다 사용자 이름과 비밀번호를 요청합니다. 삭제되지 않은 사람들은 그렇게하지 않습니다.
사용자 이름 / 암호 프롬프트를 제거하기 위해 읽은 유일한 솔루션은 ssh 키를 생성하는 것입니다. 문제는 이미 키가 있다는 것입니다. 그렇지 않으면 해당 리포지토리에 메시지가 표시되지 않고 복제 할 수 없었습니다.

git config비밀번호없이 푸시 할 수있는 리포지토리와 복제 한 리포지토리 중 두 개를 살펴 보았습니다 . 유일한 차이점은 설정 branch.master.remotebranch.master.merge설정 git config이 동일 하다는 것 입니다. 그러나 프롬프트는 여전히 존재합니다.

새 ssh 키 생성이 작동하는지 확실하지 않습니다. 내 옵션은 무엇입니까?


help.github.com/ssh-issues를 참조 하고 자세한 내용을 제공하십시오. SSH를 시도하면 어떻게됩니까?

답변:


21

내 추측:

기존 리포지토리는 공개 키 인증을 사용 하는 SSH 원격 ( git@github.com:또는 ssh://git@github.com/접두사)을 사용했습니다. (실제로 Github SSH 서버는 절대 비밀번호를 요구 하지 않습니다 .)

새 저장소는 비밀번호 기반 HTTP 기본 인증 만 지원 하고 SSH 키를 사용하지 않는 HTTP 원격 ( )을 사용합니다.https://username@github.com/

SSH를 다시 ​​사용하도록 원격 URL을 변경하십시오. 이렇게하려면 git remote set-url편집하거나 사용하십시오 .git/config. 바꾸다

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

그냥

git@github.com : 사용자 이름 /repo.git

~/.gitconfiggit에게 원격 URL을 HTTP 또는 Git에서 SSH로 변환하도록 지시 하는 항목을 가질 수도 있습니다 .

이런 식으로 리포지토리가 HTTP 또는 Git 원격으로 구성된 경우 git은 푸시 할 때 해당 설정을 무시하고 대신 SSH를 사용합니다.

[url "git@github.com:"]
    pushInsteadOf = git://github.com/
    pushInsteadOf = https://github.com/

( insteadOf =당김 밀기 모두를 무시하기위한 설정도 가능합니다 .)

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