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 "new SHH KEY"

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 "Add SSH Key"

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)