Git e GitHub são ferramentas essenciais para todo desenvolvedor. Eles são amplamente utilizados em quase todos os tipos de projetos de desenvolvimento de software.
Desde 13 de agosto de 2021, o Github não aceita mais autenticação de senha para acesso à linha de comando. Isto significa que agora você precisa autenticar através de um token de acesso pessoal ou usar uma chave SSH (um pouco mais conveniente).
Aqui está o que acontece quando você tenta autenticar com sua senha do GitHub sobre HTTP em um terminal:
Username for 'https://github.com': yourusername
Password for 'https://yourusername@github.com':
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: Authentication failed for 'https://github.com/yourusername/repository.git/'
Basicamente, nas linhas acima, o GitHub está lhe informando que precisa da sua chave pública para autorizar você a editar qualquer um dos seus repositórios via SSH.
Então, vamos ver como você pode gerar chaves SSH localmente. No meu caso, eu estou usando um Ubuntu em WSL e como IDE de desenvolvimento, utilizo neste caso, o PphStorm, então tudo que eu fiz, foi executado dentro do próprio terminal do PhpStotm, rodando em um projeto no Ubuntu via WSL.
Para gerar o seu par de chaves (sim, é um par, uma pública e outra privada) execute o seguinte comando para gerar um par de chaves SSH local:
ssh-keygen -t ed25519 -C "seuemail@provedor.com"
É importante entender cada comando que introduzimos em nossos terminais, então vamos ver o que cada parte deste significa.
- ssh-keygen: A ferramenta de linha de comando usada para criar um novo par de chaves SSH. Você pode ver seus todos as suas flags com
ssh-keygen help
- –t ed25519: A flag
-t
é usada para indicar o algoritmo usado para criar a assinatura digital do par de chaves. Se o seu sistema suporta isso,ed25519
é o melhor algoritmo que você pode usar para criar pares de chaves SSH. - -C “email”: A flag
-c
é usada para fornecer um comentário personalizado no final da chave pública, que normalmente é o e-mail ou a identificação do criador do par de chaves.
Depois de digitar o comando em seu terminal, você terá que digitar o arquivo para o qual você gostaria de salvar as chaves. Por padrão, ele está localizado em seu diretório pessoal (no caso do Linux em /home/user), em uma pasta oculta chamada “.ssh”, mas você pode mudá-lo para o que quiser.
Será solicitado acrescentar uma senha para o seu par de chaves. Isto adiciona uma camada extra de segurança se, a qualquer momento, o seu dispositivo for comprometido. Não é obrigatório adicionar uma senha, mas sempre é recomendado.
Abaixo a imagem com o comando sendo executado e o seu retorno:
Adicione a chave SSH ao ssh-agent
O programa ssh-agent é executado em segundo plano, segura suas chaves e senhas privadas com segurança e as mantém prontas para uso pelo ssh. É um grande utilitário que salva você de digitar sua senha toda vez que você quiser se conectar a um servidor.
Por causa disso, você vai adicionar sua nova chave privada a este agente através dos comandos:
1- Certifique-se de que o ssh-agent está rodando em segundo plano:
eval `ssh-agent`
# Agent pid 334065
Se você receber uma mensagem semelhante a esta, então tudo está bem. Isso significa que o ssh-agent está rodando sob uma identificação de processo particular (PID). NO meu caso, o comando apresentou um problema, talvez devido a eu estar utilizando o WSL, então eu tive que rodá-lo através do seguinte comando:
eval $(ssh-agent)
2- Após o retorno do PID do ssh-agent, adicione sua chave privada SSH (aquela sem a extensão .pub) ao ssh-agent (lembre-se que eu estou em /home/user).
ssh-add teste_blog
Adicionar chave SSH à conta GitHub
O passo final é adicionar sua chave pública à sua conta GitHub. Basta seguir estas instruções:
1- Copie sua chave SSH pública para a sua área de transferência. Você pode abrir o arquivo onde ele está localizado com um editor de texto e copiá-lo, ou usar o terminal para mostrar seu conteúdo (lembre-se que eu estou em /home/user).
cat teste_blog.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFjheOytEPtI2Hv0eoyoIUcaAgdGfD+hF2E0kX20OT9u seuemail@provedor.com
2- Entre no GitHub e vá para a seção superior direita da página, clique na foto do seu perfil e selecione Configurações.
3- Então, nas configurações de ser perfil, clique em SSH and GPG Keys.
4- Clique no botão New SSH key.
6- Adicione sua chave SSH clicando em Add SSH key.
Pronto! Agora você já poderá fazer o push no seu repositório. Lembrando que ao invés de você pegar/configurar o link HTTP na sua IDE, você usará o link SSH:
git@github.com:user/repositorio.git
Teste de conexão SSH ao GitHub
É hora de testar tudo o que você já fez até agora. Primeiro, precisaremos clonar o repositório em nossa máquina local. Podemos ir para a página de repositórios do GitHub e copiar o endereço SSH que ele fornece.
Então, clone o repositório usando um terminal:
git clone git@github.com:EMWieczorek/publico.git
Agora, vamos criar um arquivo de teste.txt e depois de fazer isto, fazer um commit com o arquivo:
git commit -am "Adicionando um arquivo de texto"
Após o commit, faça o push para dentro do GitHub como você normalmente faria.
git push -u origin main
Se tudo correu bem, parabéns! Você acabou de estabelecer uma conexão SSH entre a sua máquina e o GitHub. Caso o git retorne algum erro, verifique suas configurações, se estão de acordo com o que mostramos acima.
Por hoje é isso. Qualquer dúvida que você venha a ter, deixa um comentário que eu te ajudo a resolver.
0 comentário