Nova exigência do Git de autenticação por token, o que é e o que devo fazer?

Camila Fernanda
Camila Fernanda

Compartilhe

Notebok aberto com a logo do GitHub aberto na tela.

Nova exigência do Git de autenticação por token, o que é e o que devo fazer?

Ultimamente, você se deparou com essa mensagem ao fazer alguns comandos no Git?

Logon failed, use ctrl+c to cancel basic credential prompt.
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: unable to access ‘<repositório Git>’: The request URL returned error: 403 

Screenshot do Git Bash com a mensagem citada anteriormente.

Isso ocorreu, porque o GitHub anunciou uma nova exigência de autenticação baseada em token para o Git. A partir do dia 13 de Agosto de 2021, a senha da conta do GitHub passou a não ser aceita mais para autenticar operações no Git.

Essa mudança se deve por motivos de segurança, pois os tokens oferecem alguns benefícios, como ter a possibilidade de salvar as informações do usuário no token e não no servidor, bem como o fato de ser configurado para ter as permissões que você quiser e ter um período de expiração. Ou seja, ele para de funcionar após determinado tempo, como se fosse uma senha única e descartável.

Assim, caso outra pessoa tenha acesso ao seu token, ela estará restrita apenas às permissões que você configurou para o mesmo. Assim você não irá correr o risco de perder sua conta do GitHub, podendo descartar o token perdido e gerar outro novamente.

Mas então, o que é preciso fazer para continuar usando as operações Git?

O GitHub recomenda começar a utilizar um token de acesso pessoal, mas caso queira, pode optar por utilizar uma chave SSH.

Dessa forma, segue um passo a passo de como gerar seu token pessoal:

1) Faça o login na página do GitHub;

2) Na página principal, selecione seu usuário no canto superior direito e clique na opção Settings:

Screenshot da tela principal do GitHub com destaque na opção Settings.

3) Na página que irá abrir, clique na opção Developer settings, 18ª opção da lista à esquerda.

Screenshot da tela Settings do GitHub com destaque na opção Developer Settings.

4) Selecione a opção Personal access tokens, 3ª opção da lista à esquerda.

Screenshot da tela Developer Settings do GitHub com destaque na opção Personal access tokens.

5) Clique na opção Generate new token.

Screenshot da tela Developer Settings do GitHub com destaque na opção Generate new token no canto superior direito.

6) Confirme com sua senha do GitHub.

Screenshot da tela Confirm access do GitHub.

7) Dê um nome para seu token e defina seu tempo de expiração.

Screenshot da tela New personal token do GitHub.

8) Marque as permissões que você deseja conceder ao token. Detalhe, para usar seu token para acessar repositórios, selecione a opção repo.

Screenshot da lista Select scopes da tela New personal token do GitHub, com a opção repo selecionada.

9) Por fim, ao selecionar todas as opções escolhidas, clique em Generate token ao final da tela.

Screenshot da tela New personal token do GitHub, com destaque na opção Generate token.

Prontinho, irá aparecer um código para que você possa copiar e colar no Gerenciador de Credenciais da sua máquina. Esse processo irá depender do seu sistema operacional.

Como editar credenciais no Windows

Depois que você gerar o token, copie ele e acesse o Painel de Controle. Você pode encontrar digitando na barra de busca.

Screenshot da tela de busca do Windows com resultado de busca "Painel de Controle"

Em seguida, acesse Contas de Usuário:

Screenshot da tela do Painel de Controle com destaque na opção Contas de Usuário

Clique em Gerenciar Credenciais do Windows:

Screenshot da tela Contas de Usuário com destaque na opção Gerenciar Credenciais do Windows da seção Gerenciador de Credenciais

Procure na seção de Credenciais Genéricas o github.com, selecione-o e coloque para editar;

Screenshot da tela do Gerenciador de Credenciais com destaque no 'git:https://github.com'

Copie o token gerado na primeira etapa e cole na caixa de texto da Senha.

Screenshot da tela de Editar Credencial Genérica com destaque na caixa de entrada de texto 'Senha'

Caso você não encontre o github.com, você pode selecionar a opção Adicionar uma credencial genérica

Tela Gerenciar suas credenciais com destaque na opção Adicionar uma credencial genérica.

E preencher nos campos:

Endereço de rede ou na Internet: https://github.com/
Nome de usuário: seu nome de usuário do GitHub
Senha: seu token pessoal gerado anteriormente

Tela Adicionar uma credencial genérica com o campo Endereço de rede ou na Internet preenchido como "https://github.com/"

Prontinho, depois você pode realizar operações Git novamente sem requisições de login até a data de expiração do token gerado.

Como editar credencial Git no Linux

No Linux, este processo pode ser feito somente no terminal. Ao abrir um repositório Git nele e fazer comandos como git pull, git push ou git clone, o Git irá fazer uma requisição de usuário e senha, caso você colocar a sua senha do GitHub, como era feito anteriormente, irá receber a mensagem citada no início:

Terminal Linux com o comando git pull origin main, tendo como resposta a mensagem: 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: unable to access ‘<repositório Git>’

Dessa forma, basta você realizar o comando novamente e no lugar da senha, colar o seu token gerado:

Terminal Linux com requisição de senha do Git, tendo como destaque a opção Paste

Assim, o comando irá ser realizado com sucesso:

Terminal com o comando git pull origin main realizado com sucesso

Porém, apesar de estar funcionando, não é viável ter que colar o token toda vez que for fazer esses comandos, certo? Para isso, basta escrever o seguinte comando para que a última senha utilizada fique salva:

git config --global credential.helper cache

Assim, no próximo comando feito, o Git irá solicitar autenticação novamente, porém nos seguintes comandos, o Git não irá pedir seu usuário e senha novamente:

Teste citado acima realizado, sendo o comando git config --global credential.helper cache para salvar o token, git push origin main com requisição de autenticação e, por fim, o comando git push origin main feito novamente sem requisição de autenticação.

E por fim, caso você queira tirar o token das configurações, basta fazer:

git config --global --unset credential.helper

Assim, você terá os pedidos de requisições novamente:

Terminal com o comando acima realizado com sucesso e, em seguida, o comando git push origin main como teste para demonstrar a requisição de autenticação.

Como editar credenciais no MacOS

Para setar o token no Mac, é semelhante ao processo do Windows. Acesse Keychain access, para encontrar você pode clicar no ícone da lupa no canto direito da barra de menu:

Tela da barra de pesquisa do Mac com a busca keychain access

Fonte: Imagem retirada da Documentação do GitHub

Em seguida, procure por github.com, clique em internet password, edite e cole o token pessoal gerado.

Caso queira retirar ele, no terminal digite:

git credential-osxkeychain erase

Conclusão

Em suma, essa mudança de utilização de tokens para autenticação é bastante interessante, pois ele pode lhe oferecer um controle maior e mais segurança. Você pode fazer todo esse processo citado acima quantas vezes achar necessário, bem como configurar as permissões e o tempo de expiração de cada token gerado da maneira de achar melhor.

Em casos de falhas em segurança, por exemplo, a pessoa estará limitada às permissões dadas ao token e sua conta GitHub continua salva. Além disso, caso isso ocorra, apague seu token indo no GitHub, em seguida em Settings, Developer settings e Personal access tokens, mesmo passo a passo para gerar o token, porém clique em Delete:

GitHub em Setting -> Developer settings -> Personal access tokens, com destaque na opção Delete no canto direito do token gerado.

Assim, você estará seguro novamente.

Caso você tenha curiosidade e queira entender um pouquinho mais sobre o token e outros tipos de autenticação, temos esse artigo que você possa se interessar:

Tipos de Autenticação: Senha, Token, JWT, Dois Fatores e Mais

E para aprender mais sobre autenticação e segurança, confira:

Podcast sobre Segurança

O que é Json Web Token (JWT)?

Curso Node.js e JWT: autenticação com tokens na Alura

Curso Autenticação mais segura com 2 fatores na Alura

Camila Fernanda
Camila Fernanda

Sou estudante de Engenharia Biomédica da Universidade Federal de Uberlândia e estagiária do Scuba Team. Portanto estou aqui para mergulhar em tecnologia com vocês e, sempre que possível, ajudá-los a encontrar as respostas que precisam. Vocês vão me encontrar bastante pelos fóruns de DevOps. Bons estudos ^^

Veja outros artigos sobre DevOps