O artigo de hoje, vai fazer a diferença na vida de vocês Devs, que querem facilitar sua rotina de trabalho. Vem conferir esse tutorial do Dataholic Michel Oliveira!
Em agosto de 2021 o GitHub removeu o suporte à autenticação de senha para operações do GIT. Agora toda autenticação deve ser feita por um token de acesso (Personal Access Token). Mas armazenar e gerenciar o token de acesso é uma tarefa bem delicada.
Não importa o quanto você tente armazená-lo, um dia você acaba criando outro, e esse ciclo nunca termina. Para simplificar nossa vida o GitHub permite que você crie chaves SSH, para que você gerencie tudo de maneira remota, com segurança e sem precisar fornecer seu nome de usuário e token de acesso pessoal toda vez que quiser acessar.
O que é SSH?
O SSH é um protocolo de rede que permite a conexão com determinados servidores por meio de uma comunicação criptografada, trazendo mais segurança para as transações de dados.
Se você estiver no Windows, recomendo que instale o git e utilize o terminal do próprio git (Git Bash). Se estiver em uma distro Linux pode usar o terminal do próprio Linux.
Passo 1 - Verificando chaves existentes
Vamos verificar se já possuímos alguma chave SSH em nosso sistema. Por padrão elas ficam na pasta raiz da máquina dentro da pasta “.ssh”, e vem com nomes como: “id_rsa.pub”, “id_ecdsa.pub” ou “id_ed25519.pub”.
No seu terminal digite: ls –al ~/.ssh , a saída desse comando deve ser algo parecido com a imagem abaixo.
Caso você já tenha alguma chave e deseja usá-la, siga para o passo 3. Se você deseja gerar uma chave nova ou a saída do comando acima tenha mostrado uma contagem ou nenhum arquivo, significa que você não tem chaves SSH então siga para o passo 2.
Passo 2 – Gerando chave SSH
Agora precisamos gerar um novo par de chaves. Falamos "par de chaves" porque assim que gerarmos uma chave, serão criados dois arquivos, um público (.pub) e um privado. O conteúdo do arquivo público (.pub) é o que colocaremos no GitHub para fazer a conexão.
Para criar uma chave ed25519, execute: ssh-keygen -t ed25519 -C "your_email@example.com"
Para criar uma chave rsa, execute: ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Não esqueça de substituir “your_email@example.com” por seu e-mail registrado em sua conta do GitHub.
Se você deseja saber a diferença sobres os tipos de chaves, recomendo essa discussão sobre o assunto: https://qastack.com.br/ubuntu/363207/what-is-the-difference-between-the-rsa-dsa-and-ecdsa-keys-that-ssh-uses
Ao digitar um dos comandos acima você será solicitado para o local de arquivo padrão da chave. Basta apertar enter. Em seguida será solicitada uma senha, você pode deixar vazia e apertar enter.
Solicitação de senha e local para chave
Feito isso, você receberá seu key fingerprint, mas não copie ainda porque essa será a versão simplificada da chave.
Key fingerprint
No resultado acima, selecione o caminho do arquivo de chave, no meu caso é /home/mjohn/.ssh/id_rsa.pub;
Para encontrar a chave original execute o comando abaixo:
cat /home/mjohn/.ssh/id_rsa.pub
Então você encontra sua chave original:
Exemplo da chave original
Passo 3 - Adicionar chave privada ao ssh-agent
O ssh-agent é um gerenciador de chaves ssh. O ssh-agent armazena em cache a chave para que você só precise digitar a senha uma vez, quando o agente desejar descriptografar a mesma, ou seja, você não precisa perder tempo digitando sua senha sempre que for fazer uma operação.
Inicie o ssh-agent digitando no terminal: eval $(ssh-agent -s)
Inclua a chave privada ao ssh-agent: ssh-add ~/.ssh/id_rsa
Chave adicionada ao ssh-agent
Passo 4 – Adicionando a chave pública (.pub) ao GitHub
Agora que já adicionamos a chave privada no ssh-agent, vamos copiar a chave pública que faz par com ela, para incluirmos no GitHub.
Para copiar digite:
No Windows: clip < ~/.ssh/id_rsa.pub. (Automaticamente o conteúdo da sua chave pública será copiado para a área de transferência.)
No Linux: cat ~/.ssh/id_rsa.pub. (O conteúdo da chave pública aparecerá no terminal para ser selecionado e copiado.)
Adicionar chave no GitHub
Faça login com sua conta no GitHub;
Clique na sua foto de perfil no canto superior direito;
No menu que foi aberto clique em “settings”;
No menu lateral aberto no canto esquerdo clique em “SSH and GPG keys”;
Clique no botão “New SSH key”;
No campo “Title” de um nome para sua chave SSH; por exemplo, se estiver usando seu computador pessoal, você pode chamar essa chave de "Computador pessoal";
A chave pública (.pub) que você copiou no terminal cole-a no campo “Key”;
Clique em "Add SSH key";
Testando a conexão SSH
Execute esse comando no terminal: ssh -T git@github.com
Aguardar as mensagens. Digite "yes" para continuar.
Verifique se a mensagem resultante contém seu nome de usuário e o sucesso da sua autenticação.
Conectado com sucesso
Se porventura, a conexão não acontecer, você pode seguir essas dicas: https://docs.github.com/en/authentication/troubleshooting-ssh/error-permission-denied-publickey