No site do GitHub, há um link ...
https://help.github.com/articles/generating-ssh-keys
... e afirma ...
Se você decidiu não usar o método HTTPS recomendado, podemos usar as chaves SSH para estabelecer uma conexão segura entre o seu computador e o GitHub. As etapas abaixo orientarão você na geração de uma chave SSH e na adição da chave pública à sua conta do GitHub.
Por que HTTPS é o método recomendado? Existe algum tipo de falha de segurança no método SSH ou é mais lento? Eu criei uma chave SSH. Isso mitigaria quaisquer problemas de segurança?
Respostas:
O GitHub mudou sua recomendação várias vezes ( exemplo ).
Parece que atualmente eles recomendam HTTPS porque é o mais fácil de configurar na maior variedade de redes e plataformas e por usuários que são novos em tudo isso.
Não há falha inerente no SSH (se houver, eles o desativariam) - nos links abaixo, você verá que eles ainda fornecem detalhes sobre as conexões SSH:
É menos provável que o HTTPS seja bloqueado por um firewall.
https://help.github.com/articles/which-remote-url-should-i-use/
Uma conexão HTTPS permite
credential.helper
armazenar em cache sua senha.https://help.github.com/articles/set-up-git
fonte
ssh-agent
? Justo. Obrigado!Presumo que o HTTPS seja recomendado pelo GitHub por vários motivos
1) É mais simples de usar de qualquer lugar, pois você só precisa dos detalhes da sua conta (não são necessárias chaves SSH)
2) HTTPS É uma porta aberta em todos os firewalls. O SSH nem sempre é aberto como uma porta para comunicação com redes externas
Um repositório GitHub é, portanto, mais universalmente acessível usando HTTPS que SSH.
Na minha opinião, as chaves SSH valem o pouco trabalho extra em criá-las
1) As chaves SSH não fornecem acesso à sua conta do GitHub; portanto, sua conta não pode ser invadida se sua chave for roubada,
2) O uso de uma frase-chave forte com sua chave SSH limita qualquer uso indevido, mesmo que sua chave seja roubada
Se as credenciais da sua conta do GitHub (nome de usuário / senha) forem roubadas, sua senha do GitHub poderá ser alterada para impedir seu acesso e todos os seus repositórios compartilhados poderão ser excluídos rapidamente.
Se uma chave privada é roubada, alguém pode fazer um push forçado de um repositório vazio e apagar todo o histórico de alterações de cada repositório que você possui, mas não pode mudar nada na sua conta do GitHub. Será muito mais fácil tentar recuperar essa violação de acesso à sua conta do GitHub.
Minha preferência é usar o SSH com uma chave protegida por senha. Eu tenho uma chave SSH diferente para cada computador; portanto, se essa máquina for roubada ou comprometida com a chave, eu posso entrar rapidamente no GitHub e excluir essa chave para impedir o acesso indesejado.
O SSH pode ser encapsulado por HTTPS se a rede em que você estiver bloquear a porta SSH.
https://help.github.com/articles/using-ssh-over-the-https-port/
Se você usa HTTPS, recomendo adicionar autenticação de dois fatores para proteger sua conta e seus repositórios.
Se você usa HTTPS com uma ferramenta (por exemplo, um editor), deve usar um token de desenvolvedor da sua conta do GitHub em vez de armazenar em cache o nome de usuário e a senha na configuração dessa ferramenta.
fonte
Você está citando errado ou o Github tem recomendações diferentes em páginas diferentes, ou eles podem aprender com o tempo e atualizar suas atualizações.
É altamente recomendável usar uma conexão SSH ao interagir com o GitHub. As chaves SSH são uma maneira de identificar computadores confiáveis, sem envolver senhas. As etapas abaixo orientarão você na geração de uma chave SSH e na adição da chave pública à sua conta do GitHub.
https://help.github.com/articles/generating-ssh-keys
fonte
Habilitando conexões SSH por HTTPS se estiver bloqueado pelo firewall
Teste se o SSH pela porta HTTPS é possível, execute este comando SSH:
Se isso funcionou, ótimo! Caso contrário, talvez seja necessário seguir nosso guia de solução de problemas .
Se você conseguir fazer o SSH
[email protected]
pela porta 443 , poderá substituir as configurações do SSH para forçar qualquer conexão com o GitHub a ser executada por esse servidor e porta.Para definir isso na sua configuração ssh, edite o arquivo em
~/.ssh/config
e adicione esta seção:Você pode testar se isso funciona conectando mais uma vez ao GitHub:
De autenticação para GitHub / usando SSH pela porta HTTPS
fonte
Veja também: o oficial Qual URL remoto devo usar? responda em help.github.com.
EDITAR:
Parece que não é mais necessário ter acesso de gravação a um repositório público para usar um URL SSH, invalidando minha explicação original.
ORIGINAL:
Aparentemente, o principal motivo para favorecer os URLs HTTPS é que os URLs SSH não funcionarão com um repositório público se você não tiver acesso de gravação a esse repositório.
No entanto, o uso de URLs SSH é recomendado para implantação em servidores de produção - presumivelmente o contexto aqui são serviços como o Heroku.
fonte
É possível argumentar que o uso da chave SSHs para autenticação é menos seguro, porque tendemos a alterar nossa senha mais periodicamente do que geramos novas chaves SSH.
Os servidores que limitam a vida útil a que serão respeitados, dadas as chaves SSH, podem ajudar a forçar os usuários a praticar a atualização periódica das chaves SSH.
fonte
Talvez porque seja mais difícil roubar uma senha do seu cérebro do que roubar um arquivo de chave do seu computador (pelo menos que eu saiba, talvez algumas substâncias ou métodos já existam, mas essa é uma discussão infinita)? E se você proteger com senha a chave, estará usando uma senha novamente e os mesmos problemas surgirão (mas alguns podem argumentar que você precisa trabalhar mais, porque você precisa obter a chave e depois quebrar a senha).
fonte