Comprei um novo laptop com o Ubuntu 22.04 e tive que configurar o ssh para funcionar com repositórios do gitlab. Segui os pares de chaves SSH gerados nos documentos e usei o ED25519.
como eu disse, segui os passos e adicionei a chave na minha conta gl. agora, toda vez que tento clonar um repositório ou executar git push
, git pull
recebo este erro:
sign_and_send_pubkey: signing failed for ED25519 "/home/abar/.ssh/id_ed25519" from agent: agent refused operation
[email protected]: Permission denied (publickey)
nota: tentar fazer ssh em um servidor remoto me dá o mesmo erro, não tem relação com gl.
executando esses comandos (da documentação do gl) consigo trabalhar conectado ao gitlab na sessão que tenho aberta no terminal, abrir uma nova sessão não sabe sobre isso e tenho que executar esses comandos novamente.
eval $(ssh-agent -s)
ssh-add <directory to private SSH key>
os documentos também sugerem adicionar o ~/.ssh/config
com essas linhas (não funciona)
Host gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_com_rsa
Perguntei ao chatgpt sobre isso e ele sugere duas coisas:
execute
ssh-add -l
para verificar se minha chave existe. OK, ele retorna o valor. ele também sugere executar o eval e ssh-add a chaveadicione o eval e o ssh-add no
.zshrc
arquivo. Isso não é grande coisa, pois toda vez que tenho que digitar a senha...
Outra coisa que verifiquei é o conteúdo de $SSH_AUTH_SOCK
e ele retorna /run/user/1002/keyring/ssh
.
no laptop antigo eu estava usando o Ubuntu 22.04 e não tive esses problemas, verifiquei permissões, arquivos de configuração e eles são os mesmos.
Não sei o que fazer para resolver esse problema.
Ok, não sei exatamente como, mas li a documentação do GitHub para compará-la com o GitLab e as etapas para adicionar e configurar uma chave SSH.
Os passos são os mesmos, mas notei que o GitHub adiciona essas linhas no
config
arquivo paragithub.com
.Eu queria tentar e adicionei
AddKeysToAgent yes
. Fechei o terminal e agora todos os projetos clonados do GitLab funcionam e não preciso executar o agente ssh e adicionar minha chave toda vez.