Repetidos pedidos de nome de usuário e senha são irritantes e desperdiçadores de tempo. Se você usa autenticação de senha com sua conta GitLab, cada ação exige que você envie suas credenciais, seja como parte do comando ou por meio de um prompt interativo.
Especialmente ao automatizar os pipelines de CI/CD no GitLab, a autenticação por senha pode ser ineficiente e representar um possível risco de segurança. Por que não encerrar seu sofrimento e mudar para autenticação via Secure Shell (SSH) usando chaves SSH do GitLab? Continue lendo e aprenda como fazer!
Ao final deste tutorial, você terá gerado um par de chaves SSH, utilizado a chave para autenticar e publicar um novo projeto no GitLab.
Pré-requisitos
Este tutorial é uma demonstração prática. Para seguir, certifique-se de preparar os seguintes requisitos.
- Sua conta no GitLab. Se ainda não tiver uma, registre-se gratuitamente primeiro.
- A computer to use as your Gitlab SSH client. This tutorial will be using an Ubuntu 20.04 LTS computer but should work with Windows and macOS too.
- Atualize ou instale o Git. A versão mais recente, até o momento deste tutorial, é 2.25.1.
Visual Studio Code (VS Code). O exemplo neste tutorial usará o VS Code 1.62.3.
Gerando um Par de Chaves SSH no Gitlab
Chaves SSH ou um par de chaves consiste em chaves privadas e públicas. Em resumo, a chave privada é o que o cliente (seu computador) apresenta ao servidor (Gitlab) para autenticação, e a chave pública é o que o servidor usa para decodificar sua chave privada. E se ambas as chaves coincidirem, a autenticação é bem-sucedida.
O GitLab suporta dois tipos de pares de chaves SSH, as chaves SSH RSA e ED25519. Mas neste exemplo, você gerará o par de chaves ED25519, pois é considerado mais seguro do que as chaves RSA. Siga as etapas abaixo para gerar um par de chaves SSH.
1. No seu desktop, abra uma sessão de terminal e execute o comando abaixo. Esse comando abre o seu diretório pessoal no VS Code.
2. No VS Code, clique em Terminal —> Novo Terminal.

3. No terminal do VS Code, execute o ssh-keygen -t
abaixo para gerar o tipo de chave SSH ED25519
. A tag de comentário -C
é opcional, mas recomendada para tornar suas chaves mais identificáveis.
4. Na próxima solicitação perguntando onde salvar a chave, pressione Enter para aceitar o nome de arquivo padrão. O nome do arquivo deve ser semelhante a /home/<username>/.ssh/id_ed25519, onde <username> é o seu nome de usuário.

5. Em seguida, deixe a frase secreta vazia e pressione Enter duas vezes. Como resultado, você estará criando um par de chaves SSH sem senha.

Você deverá ver um resultado semelhante à captura de tela abaixo mostrando as localizações da chave privada (id_ed25519) e da chave pública (id_ed25519.pub).
As chaves privada e pública têm o mesmo nome de arquivo base. Mas a chave pública tem a extensão .pub, enquanto a chave privada não tem extensão.

Adicionando a Chave SSH do Gitlab ao Seu Perfil
Lembre-se de que a chave privada fica no seu computador, enquanto a chave pública deve estar no servidor do Gitlab. Portanto, após gerar as chaves SSH, seu próximo passo é fazer o upload da chave pública para sua conta do Gitlab. Para fazer isso, siga as instruções abaixo.
1. Abra o arquivo da sua chave pública no VSCode. No painel Explorer, expanda a pasta .ssh e clique em id_es25519.pub. Em seguida, selecione a chave pública e copie-a para a área de transferência.

2. Agora, abra um navegador da web, acesse https://gitlab.com e faça login em sua conta do Gitlab.
3. Após o login, navegue até as configurações de perfil das Chaves SSH em https://gitlab.com/-/profile/keys.
- Cole a chave pública que você copiou anteriormente no campo Chave.
- O campo Título é preenchido automaticamente com a parte de comentário da sua chave pública. Deixe o valor do título como está ou insira o valor preferido.
- Opcionalmente, especifique uma data de expiração no campo Expira em.
- Por último, clique em Adicionar chave.

Usando Sua Chave SSH do Gitlab
Até agora, você gerou a chave SSH e a enviou para sua conta do Gitlab. O que resta é testar se sua chave SSH funciona usando-a para se conectar e autenticar no Gitlab.
Entrando
No terminal do VS Code, conecte-se à sua conta do Gitlab executando o comando abaixo.
Supondo que você esteja se conectando pela primeira vez, o comando solicitará que você verifique a autenticidade do host e confirme a conexão. Digite sim
quando solicitado e pressione Enter
para confirmar.
Observe que você não precisou inserir um nome de usuário e senha para fazer login? Em vez disso, o comando ssh usa automaticamente suas chaves SSH para autenticação. Após um login bem-sucedido, você deverá ver uma mensagem de boas-vindas dizendo, “Bem-vindo ao Gitlab @username!“.

Publicando um Novo Projeto
Você confirmou que sua chave SSH do Gitlab funciona e permite que você se autentique com sucesso. Mas será que também funciona quando você interage com o Gitlab por meio do Git? Por que não testar publicando um novo repositório do Gitlab?
1. Primeiro, inicialize a configuração do Git e configure-a com o nome de usuário e endereço de e-mail da sua conta no Gitlab. No terminal do VS Code, execute os comandos git config
abaixo para especificar, respectivamente, seu nome de usuário e endereço de e-mail do Gitlab.
O comando que você executou deve atualizar ou criar o arquivo ~/.gitconfig com as informações fornecidas por você.

2. Em seguida, crie uma pasta em seu diretório principal para o seu novo repositório. Nomeie a nova pasta como my-first-project.
O nome da pasta também será o nome do projeto de repositório no Gitlab.
3. Inicialize o repositório executando o comando abaixo. Certifique-se de substituir <username>
pelo seu nome de usuário do Gitlab.
Você deverá ver uma mensagem de confirmação semelhante à captura de tela abaixo.

4. Em seguida, especifique o endereço remoto do repositório Git para o seu projeto. Este endereço do repositório determina se você autenticará com chaves SSH ou com nome de usuário e senha.
Encontre a sintaxe abaixo, onde <username>
é seu nome de usuário do Gitlab e <project-name>
é o nome do repositório no Gitlab. Observe que o endereço do repositório começa com [email protected]
, o que indica que você autenticará com a chave SSH em vez de um nome de usuário e senha.
Suponha que o nome de usuário do Gitlab seja kevin
e o nome do repositório seja meu-primeiro-projeto
. Agora execute o comando no terminal conforme segue.
5. Execute o comando abaixo para criar um arquivo vazio no seu repositório chamado README.md.
6. Abra o arquivo README.md para edição e cole o seguinte conteúdo no arquivo. Salve o arquivo após a edição. Meu primeiro projeto para demonstrar chaves SSH do Gitlab.

7. Agora, diga ao Git para adicionar o novo arquivo README.md ao repositório e confirmar as alterações.
Você deve ver uma saída semelhante ao mostrado abaixo.

8. Finalmente, é hora de publicar o seu novo repositório. Execute o comando abaixo para enviar o repositório do seu computador para a sua conta do Gitlab.
Como você pode ver abaixo, a criação do projeto foi bem-sucedida e não houve solicitações de credenciais! O Git usou suas chaves SSH para autenticar com o Gitlab.

9. Por fim, confirme que o seu novo projeto do Gitlab existe online. Usando o seu navegador, acesse https://gitlab.com/dashboard/projects para ver uma lista dos seus projetos existentes. Você deve então ver o nome meu-primeiro-projeto na lista.

10. Além disso, clique no nome do projeto e você deverá ver o arquivo README.md e seu conteúdo em exibição.

Conclusão
Parabéns por ter chegado até aqui neste tutorial! Ao longo deste tutorial passo a passo, você aprendeu como gerar e usar chaves SSH para fazer implantações seguras de controle de versão no seu repositório GitLab.
Com este conhecimento, agora você pode realizar tarefas nos seus repositórios do GitLab sem se preocupar em expor inadvertidamente seu nome de usuário e senha.
Você já utilizou autenticação de chave SSH no GitLab antes? Como foi a experiência? Você recomenda que outros também usem chaves SSH, ou há alguma razão para ficarem longe delas? Deixe-nos saber.