Economize tempo entrando no GitHub por SSH usando autenticação sem senha.

A autenticação com o GitHub geralmente envolve o uso de um token de acesso ou senha. No entanto, esses métodos podem ser inconvenientes e inseguros, especialmente ao acessar o GitHub de vários dispositivos.

O GitHub oferece a opção de usar Secure Shell (SSH) para autenticação. O SSH apresenta um protocolo de rede seguro para acesso remoto à máquina. Esse recurso se mostra especialmente valioso em situações que exigem automação ou acesso remoto frequente.

Compreendendo a autenticação SSH

A autenticação com SSH envolve o uso de chaves criptográficas para estabelecer uma conexão segura (túnel) entre um cliente (máquina local) e um servidor (GitHub).

Ao usar SSH para GitHub, um usuário gera um par de chaves SSH - uma chave pública e uma chave privada. A chave pública é carregada na conta GitHub do usuário, enquanto a chave privada permanece armazenada com segurança na máquina local do usuário.

O processo pode ser comparado ao conceito de fechadura e chave. A chave pública (bloqueio) destina-se a ser compartilhada abertamente e armazenada com segurança no lado do servidor. Ele serve como uma contraparte da chave privada, permitindo que o servidor verifique a identidade de sua máquina local. Por outro lado, a chave privada (chave) atua como um identificador único armazenado exclusivamente em sua máquina local, permitindo uma autenticação bem-sucedida com o servidor.

Durante a autenticação com o GitHub, sua máquina local apresenta sua chave privada como prova de identidade. O servidor verifica se a chave pública correspondente associada à sua conta do GitHub corresponde à chave privada fornecida. Se as chaves coincidirem, o servidor concede acesso, estabelecendo um criptografado e seguro conexão para comunicação.

Configurando SSH para GitHub

Nesta seção, você verá como configurar o SSH para autenticação com o GitHub.

1. Gerando par de chaves SSH

O processo de geração de um par de chaves SSH é o primeiro passo para a utilização do SSH para autenticação.

  1. Abra seu terminal ou prompt de comando.
  2. Execute o seguinte comando para gerar um novo par de chaves SSH:
     ssh-keygen -t rsa -b 4096 -C "[email protected]"
  3. Você será solicitado a inserir um local de arquivo para salvar o par de chaves. Imprensa Digitar para aceitar o local padrão (~/.ssh/id_rsa) ou especificar um local personalizado.
     > Geração de par de chaves rsa público/privado.
     > Digite o arquivo emqual para salvar a chave (/home/vagrant/.ssh/id_rsa):
  4. Em seguida, você será solicitado a inserir uma frase secreta. Embora opcional, adicionar uma senha serve como um nível adicional de segurança. Certifique-se de lembrar sua senha.
     > Digite a senha (vazia para sem senha): 
     > Digite a mesma senha novamente:
  5. Depois de gerar o par de chaves, você verá dois arquivos no local especificado. id_rsa (chave privada) e id_rsa.pub (chave pública).
     > Sua identificação foi salva em /home/vagrant/.ssh/id_rsa.
     > Sua chave pública foi salva em /home/vagrant/.ssh/id_rsa.pub.
  6. Após a conclusão, a impressão digital das chaves e a imagem randomart são exibidas.
  7. Por fim, você precisará do conteúdo da chave pública para adicionar ao GitHub. Execute o seguinte comando para obter o conteúdo:
     cat ~/.ssh/id_rsa.pub

Certifique-se de especificar o caminho (~/.ssh/id_rsa.pub no meu caso) que você usou ao criar as chaves.

Copie o conteúdo para um local seguro e temporário para uso posterior.

2. Adicionando a chave pública ao GitHub

Agora que você gerou um par de chaves SSH, você precisa adicionar a chave pública à sua conta do GitHub.

  1. Faça login na sua conta do GitHub e vá para sua conta Configurações.
  2. Clique em Chaves SSH e GPG localizado na barra lateral esquerda.
  3. Clique em Nova chave SSH.
  4. Dê a sua chave SSH um Título.
  5. Cole o conteúdo da chave pública no Chave campo.
  6. Por fim, clique no botão Adicionar chave SSH para salvar a chave SSH em sua conta do GitHub.

Você exportou com sucesso a chave pública para sua conta do GitHub com eles.

3. Configurando um Agente SSH

Um agente SSH é um programa que ajuda a gerenciar chaves SSH e fornece uma maneira segura de armazená-las e usá-las. Ele atua como intermediário entre sua máquina local e o servidor remoto durante a autenticação SSH. Isso permite que você gerencie várias chaves SSH para diferentes contas do GitHub.

  1. Assegure-se de que o agente SSH esteja em execução.
     $ avaliação"$(ssh-agente -s)"
     > Agente pid 2757
  2. Adicione a chave privada ao agente SSH.
     $ ssh-add ~/.ssh/id_rsa
     > Digite a senha para /home/vagrant/.ssh/id_rsa:
     > Identidade adicionada: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)

Você configurou com sucesso um agente SSH para gerenciar suas chaves.

4. Testando a conexão SSH

Agora você pode testar para verificar se sua conexão SSH está configurada corretamente e pode se autenticar no GitHub usando SSH.

  • Execute o comando abaixo para testar a conexão SSH com o GitHub;
     ssh -T [email protected]
    se tudo correr bem, você verá um aviso sobre a impressão digital. Confirme a impressão digital e o tipo sim continuar.
     > A autenticidade do anfitrião 'github.com (140.92.130.4)' podenão seja estabelecido.
    > A impressão digital da chave ECDSA é SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
    >Tem certeza que quer continuar conectando (sim/não)?
  • Ao digitar sim, você verá uma saída semelhante à abaixo.
     > Aviso: adicionado permanentemente 'github.com, 140.92.130.4' (ECDSA) à lista de hosts conhecidos.
    > Oi príncipewillingoo! VocêAutentiquei com sucesso, mas o GitHub não fornece acesso ao shell.

Isso mostra que a autenticação foi bem-sucedida.

Gerenciando repositórios com SSH

A configuração do SSH permite que você gerencie seus repositórios sem ter que se preocupar com problemas de senhas e tokens de acesso.

Configurando URL remoto

git remote definir-url origem [email protected]:/.git

Clonando um repositório

git clone [email protected]:/.git

Enviando alterações para um repositório

git push origem 

Puxando alterações de um repositório

git pull origem 

Vantagens do SSH sobre a autenticação por senha

O uso de SSH para autenticação oferece várias vantagens notáveis ​​em relação aos métodos tradicionais de autenticação baseados em senha. Isso inclui:

  • A autenticação SSH elimina a necessidade de senhas, reduzindo o risco de roubo de credenciais.
  • O uso de chaves criptográficas o torna mais imune a ataques de força bruta em comparação com senhas.
  • Se sua chave privada for comprometida, você pode revogá-la e substituí-la, tornando a chave comprometida inútil.

Por esse motivo, a autenticação SSH tende a ser uma opção melhor em comparação com a autenticação por senha.

Práticas recomendadas e solução de problemas

Para garantir uma configuração SSH tranquila e segura, é necessário seguir as práticas recomendadas e estar ciente dos problemas comuns que podem ocorrer e das formas de solucioná-los.

  1. Sempre defina uma senha para criar uma camada adicional de segurança.
  2. Pratique a rotação frequente de chaves e backups.
  3. Confirme cada etapa para evitar erros de permissão ou configuração incorreta do agente SSH.

Ao aderir a essas práticas recomendadas, você pode utilizar com confiança a autenticação SSH para o GitHub.

A versatilidade do SSH

O SSH é amplamente utilizado em outras áreas para gerenciar remotamente servidores, microcontroladores e dispositivos de rede, pois permite acesso seguro à interface de linha de comando (CLI), permitindo que os usuários executem diferentes tarefas, definam configurações, transfiram arquivos e solucionem problemas problemas.