GitHub – Autenticação Git via chave SSH
Saudações, devs! ✌😎
No post anterior, mostrei como configurar a autenticação Git no GitHub usando personal access token (PAT). Agora, vou mostrar como autenticar via chave SSH.
Lembre-se que a partir do dia 13 de agosto de 2021, o GitHub não aceita mais a autenticação HTTPS via nome de usuário e senha nas operações remotas do Git. Assim, é necessário mudar! 🤷♀️
Só pra lembrar, SSH (Secure Shell) é um protocolo criptográfico que permite a conexão em servidores de maneira segura sem expor nome de usuário e senha. Para isso, é necessário estabelecer uma conexão informando uma chave SSH válida.
Let’s do it! 🚀
Passo 1 – Gerar a chave SSH
Acesse o Git Bash (ou outro terminal) e digite o seguinte comando, considerando o e-mail cadastrado no GitHub:
ssh-keygen -t ed25519 -C e-mail-da-conta-github@exemplo.com
Após a execução desse comando, será pedido um nome para o arquivo em que a chave será salva. Digite o nome e pressione <Enter>
Depois disso, será pedido uma “passphrase” (senha). Se preferir pode deixar em banco. Pressione <Enter>.
Após confirmar, será exibida uma Random Art confirmando a geração da chave. 😯
Note que foi criado um arquivo com o nome indicado e um outro arquivo .pub na pasta em que você executou o comando. Ao abrir, o arquivo .pub é possível ver a chave ssh.
Passo 2 – Adicionar a chave ao ssh-agent
É necessário iniciar o o SSH Agent. Para isso, digite o seguinte comando:
eval "$(ssh-agent –s)"
Para adicionar a chave gerada, digite:
ssh-add my-ssh-key
Note que “my-ssh-key” é o nome do arquivo que foi gerado durante o comando ssh-keygen.
Quando o comando for executado, será pedido a “passphrase” gerado no passo 1.
Após a execução, a chave foi adicionada localmente. Agora é necessário adicioná-la no GitHub.
Passo 3 – Adicionar a chave SSH no GitHub
- Abra o arquivo de chave (extensão .pub) criado e copie-a (CTRL+C);
- Agora abra o GitHub no browser;
- Vá até configurações (settings);
- Clique no menu esquerdo SSH and GPG Keys;
- Em SSH Keys, clique em New SSH key;
- Dê um título a sua chave e cole o conteúdo do arquivo .pub;
- Agora é necessário fazer a conexão com o GitHub. Na no Git Bash, digite o seguinte comando:
ssh –T git@github.com
Esse comando deve exibir uma mensagem de sucesso, confirmando a conexão.
PRONTO! Agora seu Git local está devidamente conectado ao Git Hub via SSH. Agora é possível realizar operações no repositório remoto sem expor usuário e senha. 😉
ATENÇÃO! Depois que fechar o terminal e/ou reiniciar o computador, é necessário fazer a conexão via SSH novamente, ou seja, os passos 2 e 3.
Conclusão
É claro que a autenticação com usuário e senha era muito mais simples. Entretanto, o fato de informar dados pessoais diretamente não é uma boa prática quando consideramos o quesito segurança. Assim, o GitHub achou por bem implementar formas mais seguras de autenticação.
Para saber como configurar a autenticação Git via personal access token (PAT) clique aqui.
Para mais informações sobre a autenticação Git via SSH, consulte a documentação oficial do Git Hub.
Até a próxima! ✌😎