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
- 1. confluence.atlassian.com/bbkb/… 2. confluence.atlassian.com/bitbucket/…
- " Chaves adicionadas ao chaveiro via ssh -add -K não são automaticamente adicionados novamente ao ssh-agent após uma reinicialização. " Você tentou as soluções do github .com / jirsbek / SSH-keys-in-macOS-Sierra-keychain ?
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.