Como você redefine as credenciais armazenadas em 'git credential-osxkeychain'?


98

Segui as instruções do GitHub para configurar minha conta e posso clonar, mas não consigo enviar remotamente.

Quando eu faço um "git push", obtenho o erro 403. Ele tem o URL correto. Eu tentei um "git credential-osxkeychain get" para ver o que estava dando, e isso imprime as credenciais erradas.

Acredito que o que aconteceu foi a primeira vez que ele pediu as credenciais, pensei que era outro aplicativo pedindo, e colocou as erradas.

Eu só preciso redefini-lo para que ele use o item de chaveiro correto para minha conta do GitHub.

Eu tentei:

git credential-osxkeychain erase
git credential-osxkeychain set

O programa nunca dá nenhum aviso. Set dirá "entrada incorreta" se eu não fizer a coisa certa. Eu tentei colocar " password=password", etc., mas quando eu faço um "get" eu ainda obtenho os antigos.

Não consigo descobrir onde eles estão sendo armazenados, pois eles não estão em .gitconfigure. Além disso, não há nenhum item de chaveiro recente que possa ser isso. (Eu tenho várias contas GitHub em meu chaveiro e não está usando nenhuma delas.)




Respostas:


122

Do Terminal:

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

NOTA: depois de inserir "protocolo = https" acima, você precisa pressionar ~~ RETURN ~~ DUAS VEZES


2
Por algum motivo, não consegui encontrar nenhuma credencial Git / GitHub no aplicativo Keychain, mas funcionou. Obrigado!
Donald

4
Já que isso não ficou claro para mim: você tem que inserir todas as 3 linhas acima e, em seguida, pressionar Enter novamente - ou seja, as linhas 2/3 acima não são geradas pelo comando, mas sim inseridas.
Frederik

Essa resposta me ajudou. Muito obrigado!
Ken Flake,

70

Não tenho certeza de como apagar por meio da linha de comando, mas é bastante fácil fazer isso por meio do aplicativo Keychain Access. Basta ir para Aplicativos -> Utilitários -> Acesso às Chaves e, em seguida, digite "github.com". Você pode excluir o item inválido ou atualizar a senha com o aplicativo.


4
Se alguém lendo isso descobrir como fazer na linha de comando, seria bom saber.
funroll de

1
@funroll A ferramenta de linha de comando é security. A página do manual afirma que tem um delete-internet-passwordcomando.
benzado

Obrigado pela atualização, tenho certeza que será útil para alguém.
funroll de

esta é a melhor solução
Elias Fazel

De qual chaveiro?
Bryan Bryce

28

A solução acabou sendo esta:

O comando git credential-osxkeychainestava usando a primeira entrada da conta GitHub em minhas chaves. Este não foi o único que teve acesso aos projetos em questão.

Resolvi o problema tocando na conta no Keychain Access para que sua data mudasse (acho que acabei de mudar o comentário) e agora que se tornou a conta GitHub mais recente, ela se tornou a primeira a retornar ao credential-osxkeychain e, portanto, tudo funcionou .

Uma forma melhor de suporte para várias contas do GitHub seria boa, mas é provável que a maioria das pessoas tenha apenas uma conta principal e não tenha esse problema.


2
Não tenho certeza de como isso funciona para vários usuários no mesmo host, mas você pode verificar o ssh e usar um ~/.ssh/configarquivo em vez de usar o OSX Keychain. Isso é usado nos casos em que você pode ter várias chaves ssh para diferentes hosts (e contas de pensamento também). nerderati.com/2011/03/17/…
jusopi

10

git-credential-osxkeychain armazena senhas no Apple Keychain, conforme observado acima.

Por padrão, gitcredentials considera apenas o nome de domínio. Se você deseja que o Git considere o caminho completo (por exemplo, se você tiver várias contas GitHub), defina a useHttpPathvariável truecomo, conforme descrito em http://git-scm.com/docs/gitcredentials.html . Observe que a alteração dessa configuração solicitará suas credenciais novamente para cada URL.


7

No Mac, use o comando git credential-osxkeychain erase.

OU remova manualmente das chaves em AplicativosUtilitáriosAcesso às Chaves . Em seguida, remova o chaveiro github.com. Em seguida, use push; ele vai pedir o acesso do keychain; então negue.

Ele vai pedir o novo nome de usuário e senha, adicioná-lo e enviar um arquivo para isso.

Depois git pushque encontrei esse erro. Então eu uso o problema de maiúsculas:

remote: Permissão para user1 / file.git negada para user2 (usuário existente anteriormente). fatal: incapaz de acessar ' https://github.com/xxxxxxxxxxxx/ ': O URL solicitado retornou o erro: 403



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.