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.
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
Arch:
yay -S openssh
ou
$ pacman -S openssh
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:
e então verá que foram criado dois novos arquivos na pasta .ssh
, com o comando abaixo é possível confirmar isso:
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
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)"
(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.
e para finalmente adicionarmos à SSH gerada o nosso gerenciador basta digitar:
ssh-add ~/.ssh/id_ed25519
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
Com isso feito, você deverá ver uma mensagem mostrando que a identidade foi adicionada.
Ó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)
Com isso feito, é só seguir para a barra lateral e clicar em SSH and GPG Keys
(Chaves SSH e GPG)
E terá um botão indicando para adicionar uma nova Chave SSH
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).
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:
- GitHub usará Access Token como autenticação: https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/
- O que são Chaves SSH? : https://jumpcloud.com/blog/what-are-ssh-keys
- Checando Chaves SSH existentes | GitHub: https://docs.github.com/en/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys
- Gerando uma nova chave SSH e adicionando ao ssh-agent | GitHub: https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
- Alternativas caso SSH-agent não funcione | Command not found :: https://command-not-found.com/ssh-agent
- Instalando OpenSSH nos Sistemas Operacionais | OpenSSH :: https://docs.crp.to/openssh.html#prerequisites
- Notas da última atualização do OpenSSH | OpenSSH: (https://www.openssh.com/txt/release-8.2)
Top comments (0)