Você deve usar HTTPS ou SSH para Git?


0

Ao se conectar a repositórios Git remotos como o Github, você geralmente tem duas opções de conexão – HTTPS ou SSH. Ambos têm seus usos e, embora o SSH seja geralmente considerado mais seguro, a questão é um pouco mais complicada do que isso.

Qual é a diferença?

O método de autenticação que você usa para se conectar a um repositório Git depende da URL com a qual seu controle remoto está configurado. O formato de URL padrão que o Github usa é HTTPS, que se comunica diretamente pelo protocolo da web:

https://github.com/user/RepoName.git

No entanto, você também pode usar SSH. Embora você não esteja abrindo um shell interativo e executando comandos, ainda tem o mesmo formato como se estivesse se conectando a um servidor Linux habilitado para SSH regular:

user@ipaddress:folder/file

Com o Github e a maioria dos serviços, você se conecta ao “git”Usuário e acessar o .git endpoint como um arquivo em uma pasta com seu nome de usuário.

git@github.com:user/RepoName.git

Por que usar HTTPS?

Então, qual você deve usar? Embora o SSH seja geralmente considerado mais seguro, para o uso básico do Github, a autenticação HTTPS com uma senha é aceitável o suficiente. Na verdade, o próprio Github adota como padrão e recomenda que a maioria das pessoas use HTTPS.

HTTPS tem muitas vantagens:

  • HTTPS é mais simples. Com a forma como funciona no Github, você só precisa inserir seu nome de usuário e senha do Github, e você será capaz de empurrar e puxar o código. Para o usuário médio, isso é perfeitamente normal.
  • Você não precisa fazer malabarismos com várias chaves SSH para usar vários dispositivos.
  • A porta 443, usada pelo HTTPS, é aberta basicamente em qualquer firewall que possa acessar a Internet. Esse nem sempre é o caso do SSH.
  • O problema de autenticação baseada em senha pode ser minimizado usando um token de acesso pessoal (PAT) no Github em conjunto com a autenticação de dois fatores em sua conta.
Propaganda

A principal desvantagem para a maioria das pessoas é que você deve inserir sua senha Git toda vez que fizer um push. Embora seja adicionado a um cache, não está configurado para armazenar em cache permanentemente (embora isso possa ser alterado). Com as chaves SSH, ele apenas usa o arquivo de chave no disco todas as vezes.

Além disso, se você usar 2FA em sua conta do Github, será forçado a usar SSH ou um token de acesso pessoal. A senha padrão da sua conta não funcionará.

Por que usar SSH?

É um engano pensar que HTTPS como protocolo é significativamente menos seguro do que SSH. Ambos fornecerão uma conexão segura, protegida de ataques man-in-the-middle (MITM). Ambos os protocolos farão seu trabalho da mesma forma, desde que as chaves subjacentes estejam protegidas. Ambos usarão autenticação baseada em chave pública de qualquer maneira, embora HTTPS com Git envie sua senha pela rede. E ambos os protocolos podem ser configurados para usar também autenticação multifator (MFA / 2FA), embora com Github seja mais fácil usar MFA em sua conta se você usar chaves SSH.

Onde o SSH assume a liderança é com o fator de autenticação – a chave. Só o comprimento torna mais difícil vazar acidentalmente e, por ser pesado e único, geralmente é mais seguro. A única desvantagem é que ele é armazenado como um arquivo acessível ao usuário em seu disco rígido, em vez de em sua cabeça, mas considerando o quão ruins os humanos são em segurança, provavelmente é melhor assim.

Além disso, não está sujeito a ser pego em uma violação de dados. É garantido que não será reutilizado, mas também nunca será armazenado no servidor de outra pessoa. Como você só dá ao Github sua chave pública e usa sua chave privada para realizar o desafio de autenticação, não há risco de ela ser exposta ou mesmo enviada pela rede.

O SSH tem muitas desvantagens, mas podem ser atenuadas se você souber o que está fazendo:

  • Configurar sua conta Github para usar sua chave SSH requer apenas alguns comandos e cliques em suas configurações.

  • Gerenciar várias chaves por computador não é trivial, mas não é muito difícil de configurar configurando seu arquivo host SSH e remotos Git.
  • Transferir chaves para outras máquinas é possível, mas como você pode ter várias chaves SSH, isso não é necessário.

RELACIONADO: Como usar uma chave SSH privada diferente para comandos Git Shell

SSH pode até ser tunelado por HTTPS ao acessar o Github, usando o ssh.github.com hostname em sua configuração SSH. Embora isso possa não ser verdade para todos os serviços Git, é uma boa vantagem para o grande:

Host github.com
  Hostname ssh.github.com
  Port 443

As chaves SSH também podem ser encadeadas usando o encaminhamento de agente SSH, o que permite que você se conecte a um servidor remoto e, em seguida, use a chave SSH em sua máquina cliente para autenticar. O servidor remoto atua como intermediário, sem saber da sua chave SSH.

RELACIONADO: O que é SSH Agent Forwarding e como usá-lo?

O que você deve usar?

A questão é: você deve se preocupar com isso? Se você tem experiência com linha de comando, não é muito difícil usar apenas as teclas, e a maioria das pessoas usará de qualquer maneira, simplesmente porque é mais fácil configurar uma vez e nunca digitar uma senha novamente. Ele também funciona melhor com 2FA, que a maioria das contas de alta segurança do Github provavelmente deve usar.

Se você está apenas procurando uma experiência fácil, HTTPS é seguro, desde que sua senha seja segura. Há um motivo pelo qual o Github o tem como padrão e até o recomenda – ele funciona bem e é fácil de entender.


Like it? Share with your friends!

0

0 Comments

Your email address will not be published. Required fields are marked *