Buscar

Configurando chave SSH para o GitHub

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.

Exemplo de chaves SSH existentes

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

  1. Faça login com sua conta no GitHub;

  2. Clique na sua foto de perfil no canto superior direito;

  3. No menu que foi aberto clique em “settings”;

  4. No menu lateral aberto no canto esquerdo clique em “SSH and GPG keys”;

  5. Clique no botão “New SSH key”;

  6. 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";

  7. A chave pública (.pub) que você copiou no terminal cole-a no campo “Key”;

  8. 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


Referencias


https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent



E então, o que achou desse conteúdo? Desse jeito fica fácil né! Deixe sua curtida e comente o que mais gosta de ver por aqui, e não esquece de compartilhar com outros Devs.💚😎