Tutorial como criar chave SSH (SSH key) pro gitlab ou github no mac osx ou linux

Objetivo

Fazer conexões automáticas no gitlab ou github com git pull, git push, git clone usando o protocolo SSH sem a necessidade de informar senha. Também útil na utilização de webhook que atualiza o software no servidor, sempre que há um commit na branch master.

O que será necessário?

  1. Acesso ao terminal (linha de comando)
  2. Uma conta no GITLAB ou GitHub
  3. Um repositório já criado
  4. Uma conta de email já registrada no GitHub ou no seu perfil do GITLAB

Como configurar a nova chave SSH, para autenticação automática e inserir no github / gitlab?

PASSO 1: Abrir o aplicativo terminal com o usuário desejado

Abra o aplicativo terminal, e tenha certeza que esteja utilizando o usuário correto que deseja realizar a autenticação. Lembre-se de não utilizar o usuário root.

PASSO 2: Criar uma nova chave ssh

Digite no terminal o comando, substituindo o email, pelo seu email registrado no perfil do github/gitlab: ssh-keygen -t rsa -b 4096 -C “meu-email@email.com.br

Selecione o local onde deseja salvar a chave. Se apertar enter (sem escrever nada), ela será salva na sua pasta home, dentro da pasta: ~/.ssh/id_rsa.pub

Selecione uma senha, para adicionar uma camada extra de segurança para sua chave. Você só irá precisar lembrar desta senha quando desejar alterá-la. Não é necessário lembrar e escrever ela toda vez que fizer a autenticação automática.

Será perguntando novamente a senha, para confirmação.

Será gerado então uma impressão digital do seu computador/servidor (key fingerprint).

PASSO 3: Copiar a chave SSH (SSH key) para seu GitHub / GITLAB

A impressão digital gerada (fingerprint) e mostrada na tela pode ser adicionada diretamente ao seu GitHub.

Para o GITLAB, você precisa acessar o arquivo id_rsa.pub, copiar todo seu interior e inserir na página de chaves. Digite o comando para mostrar na tela sua chave gerada:

cat  ~/.ssh/id_rsa.pub

O início da chave deve começar com ssh-rsa e terminar com o seu email escolhido.