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 config
para dois dos meus repositórios, um que eu posso enviar sem senha e outro que eu clonei. A única diferença era branch.master.remote
e branch.master.merge
configurações, que eu desabilitei, fazendo git config
o 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?
Respostas:
Meu palpite:
Seus repositórios antigos usavam controles remotos SSH (
[email protected]:
oussh://[email protected]/
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-url
ou edite.git/config
para fazer isso. Substituircom apenas
Você pode até ter uma entrada no seu
~/.gitconfig
que 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.
(Uma
insteadOf =
configuração também é possível, para substituir tanto puxar quanto empurrar.)fonte