Como criar uma chave SSH para GitLab, GitHub no Mac OS, Windows e Linux

SSH, Secure Shell, Chaves SSH, Algoritmos de Chave SSH, RSA, DSA, ECDSA, Ed25519, Protocolo Secure Shell, Criptografia Assimétrica, Segurança de Rede, Acesso Remoto, Terminal Remoto.

Como criar uma chave SSH para GitLab, GitHub no Mac OS, Windows e Linux

Antes de começar, é importante entender os fundamentos do SSH e como funciona a autenticação com chaves SSH.

Nesse post abordamos os fundamaneto

Além disso, é necessário configurar o ambiente para gerar e gerenciar as chaves SSH. Este tutorial cobrirá os principais aspectos de como gerar e gerenciar chaves SSH em diferentes sistemas operacionais, incluindo Mac OS, Windows e Linux. Também abordaremos como configurar o Git para usar chaves SSH e como solucionar problemas comuns ao trabalhar com chaves SSH.

Configuração Inicial

Antes de começarmos a criar e configurar nossas chaves SSH para o GitLab e GitHub, precisamos realizar algumas configurações iniciais. Nesta seção, vamos mostrar como instalar o Git e SSH, verificar se já existem chaves SSH em nosso sistema e criar um diretório .ssh para armazenar nossas chaves.

Instalação do Git e SSH

Para começar, precisamos instalar o Git e SSH em nosso sistema. O Git é um sistema de controle de versão que nos permite gerenciar nossos projetos, enquanto o SSH é um protocolo de rede seguro que nos permite fazer login em servidores remotos de forma segura.

macOS

Se você estiver usando um Mac, o Git e SSH já devem estar instalados em seu sistema. Para verificar se eles estão instalados, abra o Terminal e digite os seguintes comandos:

git --version
ssh -V

Se os comandos retornarem as versões do Git e SSH, então eles já estão instalados. Caso contrário, você pode instalar o Git e SSH usando o Homebrew:

brew install git
brew install ssh

Windows

Se você estiver usando o Windows, pode instalar o Git e SSH usando o Git Bash ou PowerShell. O Git Bash é um terminal que vem com o Git, enquanto o PowerShell é um terminal que vem com o Windows.

Para instalar o Git e SSH usando o Git Bash, siga as instruções abaixo:

  1. Baixe o instalador do Git em https://git-scm.com/download/win.
  2. Execute o instalador e siga as instruções na tela.
  3. Abra o Git Bash e digite os seguintes comandos para verificar se o Git e SSH foram instalados corretamente:
git --version
ssh -V

Para instalar o Git e SSH usando o PowerShell, siga as instruções abaixo:

  1. Abra o PowerShell como administrador.
  2. Digite o seguinte comando para instalar o Git:
choco install git
  1. Digite o seguinte comando para instalar o SSH:
choco install openssh
  1. Digite os seguintes comandos para verificar se o Git e SSH foram instalados corretamente:
git --version
ssh -V

Verificação de Chaves SSH Existentes

Antes de criarmos nossas chaves SSH, precisamos verificar se já existem chaves SSH em nosso sistema. Isso evita que criemos chaves duplicadas e nos ajuda a gerenciar nossas chaves com mais facilidade.

Para verificar se já existem chaves SSH em nosso sistema, abra o Terminal (ou Git Bash ou PowerShell) e digite o seguinte comando:

ls -al ~/.ssh

Se o comando retornar uma lista de arquivos que inclui arquivos com os nomes id_rsa, id_rsa.pub, id_dsa ou id_dsa.pub, então você já tem uma ou mais chaves SSH em seu sistema.

Criação de Diretório .ssh

Por fim, precisamos criar um diretório .ssh em nosso sistema para armazenar nossas chaves SSH. Para fazer isso, abra o Terminal (ou Git Bash ou PowerShell) e digite o seguinte comando:

mkdir ~/.ssh

Em seguida, precisamos definir as permissões corretas para o diretório .ssh. Para fazer isso, digite o seguinte comando:

chmod 700 ~/.ssh

Com isso, finalizamos a configuração inicial para criar nossas chaves SSH no GitLab e GitHub.

Geração de Chaves SSH

Ao trabalhar com Git, é importante garantir que as conexões sejam seguras e autenticadas. Uma das maneiras de fazer isso é gerando um par de chaves SSH (uma chave pública e uma chave privada) e adicionando a chave pública à sua conta no GitHub ou GitLab. Nesta seção, vamos mostrar como gerar um par de chaves SSH e adicionar a chave pública à sua conta no GitHub ou GitLab.

Utilizando o ssh-keygen

O comando ssh-keygen é usado para gerar um par de chaves SSH. Por padrão, o ssh-keygen usa o algoritmo Ed25519 para gerar as chaves SSH, que é mais recente e seguro do que o algoritmo RSA ou DSA. Para gerar um par de chaves SSH usando o ssh-keygen, basta digitar o seguinte comando no terminal:

$ ssh-keygen -t ed25519 -C "[email protected]"

Este comando irá gerar um par de chaves SSH usando o algoritmo Ed25519 e associá-lo com o seu endereço de e-mail. O ssh-keygen irá perguntar onde você deseja salvar o arquivo da chave e se você deseja adicionar uma senha para proteger a chave privada.

Seleção do Algoritmo de Chave

Ao gerar um par de chaves SSH, você pode escolher entre vários algoritmos de chave, incluindo Ed25519, RSA e DSA. Recomendamos o uso do algoritmo Ed25519, pois ele é mais recente e seguro do que o RSA ou DSA. No entanto, se você precisar se conectar a sistemas mais antigos que não suportam o algoritmo Ed25519, pode ser necessário usar o RSA ou DSA.

Adicionando Passphrase

Ao gerar um par de chaves SSH, você pode adicionar uma passphrase para proteger a chave privada. A passphrase é uma senha que é usada para criptografar a chave privada e impede que alguém acesse a chave privada sem a senha. Recomendamos adicionar uma passphrase para proteger sua chave privada, especialmente se você estiver usando a chave em um computador compartilhado ou em um servidor remoto.

Para adicionar uma passphrase ao gerar um par de chaves SSH, basta digitar uma senha quando o ssh-keygen solicitar.

Nesta seção, mostramos como gerar um par de chaves SSH usando o ssh-keygen, selecionar o algoritmo de chave e adicionar uma passphrase. Ao seguir estas práticas recomendadas, você pode garantir que suas conexões com o Git sejam seguras e autenticadas.

Gerenciamento de Chaves SSH

Agora que você já criou suas chaves SSH, é importante saber como gerenciá-las corretamente. Nesta seção, vamos abordar os principais aspectos do gerenciamento de chaves SSH, incluindo o uso do ssh-agent, a adição de chaves privadas ao ssh-agent e o armazenamento seguro de chaves.

Iniciando o ssh-agent

O ssh-agent é uma ferramenta que gerencia chaves SSH e ajuda a evitar a necessidade de digitar senhas de chave repetidamente. Para iniciar o ssh-agent, abra um terminal e digite o seguinte comando:

eval "$(ssh-agent -s)"

Isso iniciará o ssh-agent em segundo plano e exibirá o PID do processo.

Adicionando Chave Privada ao ssh-agent

Para adicionar sua chave privada ao ssh-agent, use o seguinte comando:

ssh-add ~/.ssh/id_rsa

Lembre-se de substituir id_rsa pelo nome do arquivo da sua chave privada, se ele for diferente. Se você protegeu sua chave com uma frase secreta, o ssh-agent solicitará que você digite a frase secreta.

Armazenamento de Chaves com Segurança

É importante armazenar suas chaves SSH com segurança para evitar que elas sejam comprometidas. Aqui estão algumas práticas recomendadas para o armazenamento seguro de chaves:

  • Armazene suas chaves em um local seguro em seu computador ou em um dispositivo de armazenamento externo.
  • Proteja suas chaves com uma frase secreta forte.
  • Considere o uso de uma chave de segurança de hardware para autenticação em GitHub, GitLab e outros serviços que suportam chaves de segurança de hardware.

Lembre-se de que suas chaves SSH são uma parte importante da sua segurança online e devem ser tratadas com cuidado. Certifique-se de seguir as práticas recomendadas de segurança ao gerenciar suas chaves SSH.

Configuração do Git com SSH

Para configurar o Git com SSH, é necessário adicionar a chave SSH ao GitLab e ao GitHub e configurar o nome de usuário e email.

Adicionando Chave SSH ao GitLab

Para adicionar a chave SSH ao GitLab, siga os seguintes passos:

  1. Copie a chave pública SSH gerada em seu computador local. Para gerar uma nova chave SSH, siga as instruções em Gerando uma nova chave SSH e adicionando-a ao agente SSH.
  2. Faça login no GitLab e acesse as configurações de sua conta.
  3. Clique em "SSH Keys" na barra lateral.
  4. Cole a chave pública SSH na caixa de texto "Key".
  5. Adicione um título para sua chave SSH na caixa de texto "Title".
  6. Clique em "Add Key".

Adicionando Chave SSH ao GitHub

Para adicionar a chave SSH ao GitHub, siga os seguintes passos:

  1. Copie a chave pública SSH gerada em seu computador local. Para gerar uma nova chave SSH, siga as instruções em Gerando uma nova chave SSH e adicionando-a ao agente SSH.
  2. Faça login no GitHub e acesse as configurações de sua conta.
  3. Clique em "SSH and GPG keys" na barra lateral.
  4. Clique em "New SSH key".
  5. Cole a chave pública SSH na caixa de texto "Key".
  6. Adicione um título para sua chave SSH na caixa de texto "Title".
  7. Clique em "Add SSH key".

Configuração de Nome de Usuário e Email

Para configurar o nome de usuário e email no Git, siga os seguintes passos:

  1. Abra o terminal e navegue até o diretório do seu repositório Git.
  2. Digite o seguinte comando:
git config --global user.name "Seu Nome"

Substitua "Seu Nome" pelo seu nome real.

  1. Digite o seguinte comando:
git config --global user.email "[email protected]"

Substitua "[email protected]" pelo seu endereço de email.

Com a chave SSH adicionada e o nome de usuário e email configurados, você pode usar os comandos Git para enviar e buscar alterações em seus repositórios remotos sem precisar autenticar com nome de usuário e senha a cada vez.

Uso Avançado do SSH em Projetos

Clonando Repositórios com SSH

Ao clonar um repositório com SSH, é necessário ter a chave SSH configurada corretamente. Para clonar um repositório usando SSH, basta copiar o link SSH do repositório e, em seguida, executar o comando git clone seguido do link SSH do repositório. Por exemplo:

git clone [email protected]:usuario/nome-do-repositorio.git

Push e Pull via SSH

Para fazer push e pull em um repositório remoto usando SSH, basta usar os comandos git push e git pull seguidos do link SSH do repositório. Por exemplo:

git push [email protected]:usuario/nome-do-repositorio.git
git pull [email protected]:usuario/nome-do-repositorio.git

Assinando Commits com Chave SSH

Ao fazer um commit em um repositório usando SSH, é possível assinar o commit com a chave SSH. Isso ajuda a garantir a autenticidade do commit e a evitar a adulteração do histórico do repositório. Para assinar um commit com a chave SSH, basta usar o parâmetro -S seguido do nome da chave SSH. Por exemplo:

git commit -S -m "mensagem do commit"

Lembre-se de que é necessário ter a chave SSH configurada corretamente para usar essa funcionalidade.

Troubleshooting e Boas Práticas

Verificação da Impressão Digital da Chave

Ao trabalhar com chaves SSH, é importante verificar a impressão digital da chave para garantir que a chave seja autêntica e não tenha sido alterada. Para verificar a impressão digital da chave, use o comando ssh-keygen -lf seguido do caminho para a chave pública. A impressão digital da chave deve corresponder à impressão digital da chave que foi fornecida pelo proprietário do repositório. Se a impressão digital da chave não corresponder, você deve gerar uma nova chave e adicioná-la ao seu repositório.

Permissões e Propriedade de Arquivos

As permissões e a propriedade dos arquivos são importantes para garantir que as chaves SSH funcionem corretamente. As permissões do arquivo de chave privada devem ser definidas como 600, enquanto as permissões do arquivo de chave pública devem ser definidas como 644. Para definir as permissões corretas, use o comando chmod. Além disso, o proprietário do arquivo deve ser o usuário que está executando o comando SSH. Para definir o proprietário correto, use o comando chown.

Uso de Chaves de Implantação

As chaves de implantação (deploy keys) são uma maneira segura de permitir que um repositório acesse outro repositório sem a necessidade de fornecer credenciais de usuário. Para usar chaves de implantação, você deve adicionar a chave pública à lista de chaves autorizadas no repositório de destino. É importante lembrar que as chaves de implantação são restritas a um único repositório e não podem ser usadas para acessar outros repositórios. Além disso, as chaves de implantação são específicas para um usuário e não podem ser compartilhadas entre usuários.

Com essas boas práticas e dicas de solução de problemas, você deve estar pronto para trabalhar com chaves SSH em seus projetos Git. Lembre-se de sempre verificar a impressão digital da chave, definir as permissões e proprietários corretos dos arquivos e usar chaves de implantação para garantir a segurança do seu repositório.

Qual é a sua reação?

like

dislike

love

funny

angry

sad

wow