Você deve usar HTTPS ou SSH para Git?

Ao conectar-se 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 é o mesmo formato de se você estivesse se conectando a um servidor Linux habilitado para SSH regular:
usuário @ endereço ip: pasta / arquivo
Com o Github e a maioria dos serviços, você se conecta ao “ git ” usuário e acesse o endpoint . git 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 adequado.
- Você não precisa fazer malabarismos com várias chaves SSH para usar vários dispositivos.
- A porta 443, usada por HTTPS, é aberto basicamente em qualquer firewall que possa acessar a internet. Esse nem sempre é o caso para 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.
Publicidade
A principal desvantagem para a maioria das pessoas é que você deve inserir sua senha Git toda vez que enviar um push. Embora seja adicionado a um cache, não está configurado para armazenar em cache permanentemente (embora isso possa ser alterado). Com 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 equívoco 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 na 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 é armazenado no servidor de outra pessoa. Como você apenas fornece ao Github sua chave pública e usa sua chave privada para realizar o desafio de autenticação, não há risco de que seja exposto ou mesmo enviado por meio de um fio.
O SSH tem muitas desvantagens, mas elas 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
O SSH pode até ser conectado por HTTPS ao acessar o Github, usando o nome de host ssh. github. com 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 Nome do host ssh. github. com Porta 443
As chaves SSH também podem ser encadeadas usando o encaminhamento de agente SSH, 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ê deveria se preocupar com isso? Se você tem experiência com linha de comando, não é muito difícil usar apenas as chaves, e a maioria das pessoas usará mesmo assim, simplesmente porque é mais fácil configurar uma vez e nunca inserir 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, contanto que sua senha seja segura. Há um motivo pelo qual o Github o tem como padrão e até mesmo o recomenda — ele funciona bem e é fácil de entender.
Nenhum comentário