“ Permissão negada (publickey) ” toda vez que tento empurrar para git

Recentemente enfrentei um problema: cada vez que tento enviar para o repositório git (no meu caso, Bitbucket), recebo este erro:

$ git push origin master [email protected]: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 

Eu encontrei uma maneira de resolvê-lo executando estes comandos:

eval `ssh-agent` ssh-add -l ssh-add ~/.ssh/id_rsa 

Se eu fizer isso e tentar git push origin master, vai funcionar. Mas o problema é que esse problema começa a aparecer depois de algum tempo (provavelmente após a reinicialização, não tenho certeza do que faz com que apareça novamente). UPD: provavelmente não é causado pela reinicialização, porque acabei de enfrentá-lo 10 minutos depois de executar o código acima e recebi o mesmo erro. Não reiniciei meu laptop desde então.

O que pode causar esse comportamento e como posso corrigir isso?

Comentários

Resposta

Eu acho que isso aconteceu porque quando você gerou sua chave ssh, você inseriu uma senha longa para segurança. Quando você inicia o ssh-agent e adiciona ssh / rsa_id, deve ser usado como senha.

[root@user xxxxx]# eval "$(ssh-agent -s)" Agent pid 12082 [root@user xxxxx]# ssh-add /home/user/.ssh/id_rsa Enter passphrase for /home/user/.ssh/id_rsa: Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa) git push -u origin master Counting objects: 94, done. 

Resposta

Ok, esqueci de postar o problema: Eu acidentalmente defini minha chave para outro servidor para todos os hosts em ~/.ssh/config. Então, ele a usou para conectar todos os hosts em vez do correto. Excluí para todos os hosts e configurei-o apenas para os hosts que exigiam essa chave, e ele corrigiu.

Espero que seja útil para outros.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *