⚡ Nota: o script de setup do SetupForcoder já cria e vincula automaticamente uma chave SSH ao GitHub (se necessário, durante o provisionamento). Porém, caso prefira fazer manualmente, ou precise ajustar em outra máquina/usuário, siga o guia abaixo.
Autenticar no GitHub via SSH permite clonar, dar push/pull com segurança sem digitar senha toda hora. Abaixo, o passo a passo enxuto.
ls -al ~/.sshSe aparecer id_ed25519.pub (ou id_rsa.pub), você já tem uma chave pública.
ssh-keygen -t ed25519 -C "seu-email@exemplo.com"Sem suporte a ed25519? Use RSA:
ssh-keygen -t rsa -b 4096 -C "seu-email@exemplo.com"Dicas:
- Aperte Enter para aceitar o caminho padrão (
~/.ssh/id_ed25519).- Passphrase é opcional, mas aumenta a segurança.
# iniciar o agente
eval "$(ssh-agent -s)"
# adicionar a chave privada ao agente
ssh-add ~/.ssh/id_ed25519No Windows (Git Bash), os mesmos comandos funcionam.
cat ~/.ssh/id_ed25519.pub- macOS:
pbcopy < ~/.ssh/id_ed25519.pub - Linux (se tiver xclip):
xclip -sel clip < ~/.ssh/id_ed25519.pub
GitHub → Settings → SSH and GPG keys → New SSH key Dê um nome (ex.: “Meu notebook”) e cole a chave pública. Add SSH key.
ssh -T git@github.comNa primeira vez, confirme com yes. A mensagem esperada é:
Hi <seu-usuario>! You've successfully authenticated, but GitHub does not provide shell access.
- Ao clonar:
git clone git@github.com:org/repositorio.git- Para trocar um remoto existente de HTTPS para SSH:
git remote set-url origin git@github.com:org/repositorio.git-
Permission denied (publickey)
- Confirme que a chave foi adicionada ao agente:
ssh-add -l - Confirme que a pública está cadastrada no GitHub.
- Verifique permissões:
chmod 700 ~/.ssh && chmod 600 ~/.ssh/* - Rode com mais detalhes:
ssh -vT git@github.com
- Confirme que a chave foi adicionada ao agente:
-
“Host key verification failed”
- Aceite a primeira conexão ou adicione o host:
ssh-keyscan -t ed25519,ecdsa,rsa github.com >> ~/.ssh/known_hosts
- Aceite a primeira conexão ou adicione o host:
-
Várias chaves/máquinas
- Você pode cadastrar uma chave por dispositivo no GitHub.
- Para usar chave específica:
GIT_SSH_COMMAND="ssh -i ~/.ssh/id_ed25519 -o IdentitiesOnly=yes" git clone git@github.com:org/repo.git