Os repositórios clonados do GitHub solicitam uma senha, enquanto os criados originalmente não


9

Acabei de perder vários repositórios do meu disco, então os clonei no GitHub. Agora, eles pedem nome de usuário e senha cada vez que enviamos algo para o GitHub. Aqueles que não foram excluídos não fazem isso.
A única solução que li para me livrar do prompt de nome de usuário / senha está gerando a chave ssh. O problema é que eu já tenho uma chave, caso contrário eu não poderia pressionar sem avisos nesses repositórios, que não clonei.

Eu olhei git configpara dois dos meus repositórios, um que eu posso enviar sem senha e outro que eu clonei. A única diferença era branch.master.remotee branch.master.mergeconfigurações, que eu desabilitei, fazendo git configo mesmo. Mas o prompt ainda está lá.

Não tenho certeza de que a geração da nova chave ssh funcione. Quais são as minhas opções?


Por favor, consulte help.github.com/ssh-issues e dê mais detalhes. O que acontece quando você tenta fazer o SSH?

Respostas:


21

Meu palpite:

Seus repositórios antigos usavam controles remotos SSH ( git@github.com:ou ssh://git@github.com/prefixos), que usavam autenticação de chave pública. (De fato, o servidor SSH do Github nunca solicita uma senha.)

Seus novos repositórios usam controles remotos HTTP ( ), que suportam apenas a autenticação HTTP Basic baseada em senha e não usam suas chaves SSH.https://username@github.com/

Altere seus URLs remotos para usar o SSH novamente. Use git remote set-urlou edite .git/configpara fazer isso. Substituir

https: // nomedeusuário @ github.com / nomedeusuário /repo.git

com apenas

git@github.com: nome de usuário /repo.git

Você pode até ter uma entrada no seu ~/.gitconfigque diga ao git para converter URLs remotas de HTTP ou Git para SSH.

Dessa forma, se o seu repositório estiver configurado para um controle remoto HTTP ou Git, o git ignorará essa configuração ao pressionar e usará o SSH.

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

(Uma insteadOf =configuração também é possível, para substituir tanto puxar quanto empurrar.)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.