Se você trabalha com Git e GitLab, provavelmente já quis usá-lo sem senha, por um motivo ou por outro. Talvez porque é incômodo ter que digitar a senha toda vez que faz um git pull ou git push. Uma vez eu escrevi para o blog do Linux Kamarada um tutorial contendo uma possível solução para isso, que é usar o Git com chaves SSH. Mas nem sempre essa é a melhor solução possível. Se você precisa acessar registros de pacotes privados do PyPI ou registros de contêineres privados do Docker no GitLab, o melhor para isso é criar e usar um personal access token (token de acesso pessoal).
Um personal access token é semelhante a uma senha que você cria no GitLab e que lhe permite acessá-lo sem informar a senha da sua conta.
Se você tem algum script ou automação que precisa acessar o GitLab como se fosse você, você deve criar um personal access token para esse script ou automação, em vez de anotar sua senha em algum arquivo de texto que vai ficar exposto por aí.
Personal access tokens são obrigatórios para acessar repositórios do GitLab a partir do terminal (comandos git pull, git push, etc.) se você habilitou autenticação de dois fatores (two-factor authentication, 2FA) para a sua conta ou se você acessa o GitLab de uma organização por meio de single sign-on (SSO).
Veja a seguir como criar e usar um personal access token.
Criando um personal access token
Usando seu navegador preferido, acesse sua conta do GitLab. Na barra lateral à esquerda, clique no seu avatar e, depois, em Preferences (preferências):
Na barra lateral à esquerda, clique em Access Tokens. Depois, na página, à direita, clique em Add new token (adicionar novo token):
Digite um nome para o token (Token name) e defina uma data de expiração (Expiration date) para o token, que não deve ser superior a 1 ano (por exemplo, se hoje estamos em 2024-05-27
, você pode digitar 2025-05-26
para que o token tenha validade de 1 ano):
Em Select scopes (selecione escopos), defina quais ações poderão ser feitas usando esse token. Na dúvida, marque apenas a opção api, mas tenha em mente que esse é o nível de permissão máximo. Se quiser mais informações sobre cada uma dessas opções, consulte a documentação do GitLab.
Mais abaixo, nessa mesma página, clique no botão Create personal access token (criar token de acesso pessoal).
A página seguinte informa que o token foi criado:
Você pode vê-lo clicando no ícone do olho e copiá-lo usando o ícone do lado. Não deixe essa página sem ter copiado esse token para algum outro lugar, pois não terá como vê-lo novamente. Se for preciso, você terá que criar outro token.
Configurando a autenticação no Linux
Eu criei um personal access token para mim com o intuito de fazer git pull, git push, etc. dos repositórios sem ter que informar login e senha toda vez.
Para conseguir isso, se você usa Linux, como eu, deve adicionar seu personal access token ao arquivo netrc, que é um arquivo de configuração do Linux que nos permite configurar autenticação automática em servidores de Git, FTP, etc.
Usando seu editor de texto favorito (como o vim), crie (ou edite, caso já exista) o arquivo .netrc
na sua pasta pessoal (portanto, ~/.netrc
):
1
$ vim ~/.netrc
E adicione a seguinte linha:
1
machine <endereco-do-gitlab> login <nome-do-token> password <token>
No meu exemplo, ficou assim:
1
machine gitlab.com login my-token password glpat-j-_QJyC8MwzcFHsSfUUu
Salve o arquivo e saia do editor de texto.
Você deve ser o único usuário a ter permissão para ler e escrever no arquivo .netrc
. Certifique-se de que esse é o caso ajustando suas permissões:
1
$ chmod 600 ~/.netrc
Pronto! Feito isso, você já pode testar seu personal access token fazendo um git pull e percebendo que o Git não pede mais senha.