DEV Community

Cover image for Configurando SSH key no WSL / Linux
Junio Santos
Junio Santos

Posted on

Configurando SSH key no WSL / Linux

Introdução

Primeiramente gostaria de dedicar este artigo ao @rocketseat que me apresentou esse conteúdo através do incrível programa #discover no módulo GitHub. Obrigado por disponibilizar uma plataforma com excelentes conteúdos e de forma totalmente gratuita!

O artigo foi dividido em duas partes, sendo a primeira os processos realizados em nosso terminal, e a segunda feita no próprio site do GitHub.

Há não muito tempo atrás costumava manipular meus repositórios através do HTTPS e por mais que seja uma forma fácil ao instalar programas ou simples clones, quando começamos a realmente utilizar as funções do git e necessitamos de git pull, push entre outros, lidar com esse repositório com o HTTPS não é a melhor e nem a mais segura durante esse processo, ainda mais quando se trata de um repositório privado.

Trecho da página do GitHub que mostra como clonar um repositório com SSH

E como recentemente o GitHub deixou de utilizar a senha como fator de autenticação nos repositórios, gerar um Token de Acesso para cada vez que for trabalhar com um repositório final é de alto risco já que estes liberam total acesso para a sua conta, logo uma melhor solução seria criar chaves SSH e através de um processo simples poder futuramente manipular estes repositórios com bem mais segurança e privacidade.


Terminal

Bem, antes de tudo tenha certeza de que você possui instalado em seu computador alguns programas necessários, como o gerador de SSH (openssh-client para **Debian/ **Ubuntu* ou plan9port para Aarch). Caso não possua (ou queira atualizar) é só digitar os comandos:

Debian/ Ubuntu /Kali:



apt-get install openssh-client


Enter fullscreen mode Exit fullscreen mode

Arch:



yay -S openssh


Enter fullscreen mode Exit fullscreen mode

ou



$ pacman -S openssh


Enter fullscreen mode Exit fullscreen mode

para outros OS conferir aqui:
OpenSSH | Docs (crp.to)

Após isso, o que temos que fazer é usar as ferramentas listadas acima para criar uma chave SSH para que torne possível conectar nossos repositórios com o dispositivo que estamos agora configurando.

Para então gerar esta chave, precisamos rodar o seguinte comando:

ssh-keygen -t ed25519 -C "seu_email_do_github*@exemplo.com*"

  • -t indica que será criado um arquivo.
  • ed25519 - é o padrão de segurança utilizado
  • -C mostra que o email colocado a seguir será usado como identificador.

Mais informações sobre o comando utilizado está no site oficial do OpenSSH

https://www.openssh.com/txt/release-8.2

E então apenas confirme sem digitar nada as solicitações que o keygen irá fazer, e então você deverá obter uma tela parecida com esta:

Mensagem no Terminal que mostra o SHA indicando que foi concluido com sucesso

e então verá que foram criado dois novos arquivos na pasta .ssh, com o comando abaixo é possível confirmar isso:

Descritivo dos itens dentro da pasta .ssh

Agora iremos adicionar esta nova chave gerada ao nosso gerenciador de chaves (ssh-agent), portanto recomendo sair do shell que você está utilizando (zsh, fish, ...) e volte para bash, simplesmente digitando o comando



bash


Enter fullscreen mode Exit fullscreen mode

Esta etapa é necessária pois nem toda interface shell suporta comandos de bash (como eval ), agora temos que ter certeza de que o ssh-agent (Gerenciador de chaves) esteja rodando certinho. Para conferir, digitamos:



eval "$(ssh-agent -s)"


Enter fullscreen mode Exit fullscreen mode

(sem Super Usuário a.k.a **sudo)
e deverá mostrar algo semelhante como: Agent pid 5956
*O número acima não é importante e é gerado um novo a cada vez que você realiza este comando.

Mensagem no Terminal que mostra a resposta do comando eval

e para finalmente adicionarmos à SSH gerada o nosso gerenciador basta digitar:



ssh-add ~/.ssh/id_ed25519


Enter fullscreen mode Exit fullscreen mode

note que o id_ed25519 poderá ser diferente caso tenha gerado sua chave com outro sistema de segurança (como ecdsa), então para não ter erro é só ver o resultado do ls que fizemos acima e inserir o nome do arquivo gerado pelo ssh-keygen

Imagem que indica qual arquivo que deve selecionar

Com isso feito, você deverá ver uma mensagem mostrando que a identidade foi adicionada.

Mensagem que mostra que foi feito com sucesso a operação

Ótimo!! Na parte do terminal terminamos (desculpe o trocadilho) e o que nos resta agora é partir para o site do GitHub adicionar uma outra chave SSH no sistema deles (e assim identificar nosso computador).


GitHub

Após fazer o login e estar na página principal, clicamos no nosso ícone no canto superior direito (1)
e depois ir na aba Settings (Configuração) (2)

Imagem que mostra 2 setas que indicam onde deve-se clicar

Com isso feito, é só seguir para a barra lateral e clicar em SSH and GPG Keys
(Chaves SSH e GPG)

Barra lateral mostrando qual a opção certa deve selecionar

E terá um botão indicando para adicionar uma nova Chave SSH

Indicativo que mostra uma seta vermelha apontando para um botão escrito

Agora basta dar título (1) para identificar o seu dispositivo e na parte Key, deverá inserir o texto que está dentro do segundo arquivo gerado pelo ssh-keygen, que terá uma extensão .pub (que no nosso caso é id_ed25519.pub)

No terminal para acessar basta digitar cat ~/.ssh/id_ed25519.pub e irá mostrar ali mesmo o texto contigo, copie tudo isso e coloque onde está indicado como KEY na página do GitHub * (2) e por fim clicar em Add SSH Key (Adicionar Chave SSH)* (3).

3 balões que mostram com uma seta o Titulo, um campo escrito KEY e por fim um botão verde escrito

e voilà!🎉 Sua chave SSH já está configurada no GitHub e poderá trazer repositórios para sua máquina sem nenhum problema!


Caso tenha sido útil este artigo por favor dê um like e compartilhe para quem não sabia deste processo tão fundamental e simples ao mesmo tempo.

Muito obrigado pela sua atenção e te vejo na próxima!


Fontes:

Top comments (0)