Como Resolver o Erro "git@github.com: Permission denied (publickey)" ao Clonar um Repositório GitHub

Se você está tentando clonar um repositório do GitHub e se deparou com o seguinte erro:

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Não se preocupe! Esse erro ocorre porque o GitHub não conseguiu autenticar sua chave SSH. Neste guia, vamos mostrar um passo a passo para solucionar esse problema e garantir que você consiga acessar seus repositórios sem dificuldades.

O Que Causa Esse Erro?

O erro "Permission denied (publickey)" normalmente acontece por um dos seguintes motivos:

  1. Você não tem uma chave SSH configurada no seu computador.

  2. Sua chave SSH não está adicionada ao GitHub.

  3. O agente SSH não está em execução ou sua chave não está carregada.

  4. Você está tentando clonar usando SSH, mas sua conta só permite acessos via HTTPS.

Agora, vamos resolver o problema!

Passo 1: Verificar Se Você Tem Uma Chave SSH Configurada

Primeiro, verifique se já existe uma chave SSH no seu sistema. Abra o terminal e digite:

ls -al ~/.ssh

Se o comando listar arquivos como id_rsa e id_rsa.pub ou id_ed25519 e id_ed25519.pub, significa que você já tem uma chave SSH configurada.

Se não houver chaves, você precisa gerar uma nova.

Passo 2: Criar Uma Nova Chave SSH (Se Necessário)

Se você precisa criar uma nova chave SSH, utilize este comando:

ssh-keygen -t ed25519 -C "seu-email@example.com"

Caso seu sistema não suporte Ed25519, use RSA:

ssh-keygen -t rsa -b 4096 -C "seu-email@example.com"

Depois de rodar esse comando, pressione Enter para confirmar o local padrão da chave e, se quiser, defina uma senha.

Passo 3: Adicionar a Chave SSH ao GitHub

Agora, você precisa adicionar sua chave SSH ao GitHub:

  1. Pegue a chave pública com este comando:

     cat ~/.ssh/id_ed25519.pub  # Ou ~/.ssh/id_rsa.pub se for RSA
    
  2. Copie o conteúdo exibido.

  3. Acesse GitHub → Configurações → SSH and GPG keys.

  4. Clique em New SSH Key.

  5. Cole a chave pública e salve.

Passo 4: Testar a Conexão SSH com o GitHub

Para verificar se a autenticação SSH está funcionando, rode:

ssh -T git@github.com

Se tudo estiver correto, você verá uma mensagem como esta:

Hi <username>! You've successfully authenticated, but GitHub does not provide shell access.

Passo 5: Certificar-se de que o Agente SSH Está Rodando

Se o erro persistir, pode ser que sua chave SSH não esteja carregada. Para resolver isso, execute:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519  # Ou ~/.ssh/id_rsa

Passo 6: Alternativa - Usar HTTPS ao Invés de SSH

Se você não quiser usar SSH, pode clonar o repositório via HTTPS:

git clone https://github.com/usuario/repositorio.git

Isso não exige chaves SSH, mas você precisará inserir suas credenciais toda vez que fizer push ou pull.

Conclusão

Seguindo esses passos, você deve conseguir corrigir o erro "Permission denied (publickey)" e acessar seus repositórios no GitHub sem problemas. Se o erro persistir, verifique se a chave correta está sendo usada e se sua conta GitHub está configurada corretamente.

Agora é só codar e versionar seus projetos sem dores de cabeça! 🚀

0
Subscribe to my newsletter

Read articles from Bruno Development directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Bruno Development
Bruno Development