HTTPS ou SSH devem usar para Git?

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.

índice

  1. Qual é a diferença?
  2. Por que usar HTTPS?
  3. Por que usar SSH?
  4. O que você deve usar?

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 usado pelo Github é HTTPS, que se comunica diretamente pelo protocolo da web:

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

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

 [e-mail protegido] :pasta/arquivo

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

 [email protegido] :user/RepoName.git

Por que usar HTTPS?

Então, qual você deve usar? Embora o SSH seja geralmente considerado mais seguro, para uso básico do Github, a autenticação HTTPS com uma senha é bastante aceitável. Na verdade, o próprio Github é 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 poderá enviar e extrair o código. Para o usuário médio, isso está perfeitamente bem.
  • Você não precisa fazer malabarismos com várias chaves SSH para usar vários dispositivos.
  • A porta 443, usada pelo HTTPS, é aberta em praticamente qualquer firewall capaz de acessar a Internet. Isso 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.

A principal desvantagem para a maioria das pessoas é que você precisa digitar sua senha do Git toda vez que fizer push. Embora seja adicionado a um cache, ele não é configurado para cache permanentemente (embora isso possa ser alterado). Com chaves SSH, use sempre o arquivo de chave no disco.

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 conta não funcionará.

Por que usar SSH?

É um equívoco pensar que o HTTPS como protocolo é significativamente menos seguro que o SSH. Ambos fornecerão uma conexão segura contra ataques man-in-the-middle (MITM). Ambos os protocolos farão seu trabalho da mesma maneira, desde que as chaves subjacentes estejam protegidas. Ambos ainda usarão autenticação baseada em chave pública, embora HTTPS com Git enviará sua senha pela rede. E ambos os protocolos também podem ser configurados para usar autenticação multifator (MFA/2FA), embora com o 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. O comprimento por si só dificulta a liberação acidental e, por ser volumoso e único, geralmente é mais seguro. A única desvantagem é que ele é armazenado como um arquivo acessível ao usuário em seu disco rígido, e não em sua cabeça, mas, considerando o quão ruim os humanos são com a segurança, provavelmente é o melhor.

Você também não está sujeito a se envolver em uma violação de dados. É garantido que não será reutilizado, mas também não será armazenado no servidor de outra pessoa. Como você fornece ao Github apenas sua chave pública e usa sua chave privada do seu lado 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 elas podem ser atenuadas se você souber o que está fazendo:

O SSH também pode ser encapsulado por HTTPS ao fazer login no Github, usando o nome do ssh.github.com em sua configuração SSH. Embora isso possa não ser verdade para todos os serviços Git, é um bom bônus para os maiores:

 Host github.com Nome do host ssh.github.com Porta 443

As chaves SSH também podem ser encadeadas usando o encaminhamento do agente SSH, que permite que você se conecte a um servidor remoto e, em seguida, use a chave SSH no computador cliente para autenticação. O servidor remoto atua como intermediário, sem conhecer sua chave SSH.

O que você deve usar?

A questão é, ele deveria se importar? Se você tiver experiência com uma linha de comando, não é muito difícil usar as chaves, e a maioria das pessoas o fará de qualquer maneira simplesmente porque é mais fácil configurar uma vez e nunca mais digitar uma senha. 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 simples, o HTTPS é seguro desde que sua senha seja forte. Há uma razão pela qual o Github o adotou como padrão e até o recomenda: ele funciona bem e é fácil de entender.

  • Hackers de espionagem corporativa RedCurl retomam ataques com ferramentas atualizadas
  • Qual é a versão mais recente do Windows 10?

descubra mais conteúdo

O que é um amplificador integrado?

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão Geek

Qual é a diferença entre Git SSH e HTTPS?

GitWithSSH. O Git usou o protocolo SSH para transferir com segurança os dados do repositório pela Internet . Usa criptografia de chave pública para proteger dados. Git com HTTPS usa autenticação baseada em criptografia de chave pública para fazer todas as ações como git push, git clone, git fetch e git pull, etc.

O SSH é mais rápido que o HTTPS Git?

O HTTPS funciona praticamente em todos os lugares, mesmo em locais que bloqueiam protocolos SSH e Git simples. Em alguns casos, pode até ser um pouco mais rápido que o SSH , especialmente em conexões de alta latência.

O GitHub HTTPS é seguro?

O HTTPS adiciona uma camada de criptografia que impede que outras pessoas bisbilhotem ou adulterem o tráfego do seu site . Você pode impor HTTPS para seu site do GitHub Pages para redirecionar de forma transparente todas as solicitações HTTP para HTTPS.

Qual é a diferença entre clone SSH e HTTPS?

A diferença está no protocolo usado, como você provavelmente adivinhou. Supondo que você não se importe muito com os detalhes técnicos entre HTTPS e ssh, ssh tem a vantagem de poder usar autenticação de chave pública, enquanto você deve usar um nome de usuário e senha com HTTPS .

Ir arriba