为什么GitHub的建议HTTPS通过SSH?为什么GitHub的建议HTTPS通过SSH?(Why

2019-05-12 14:46发布

在GitHub的网站还有一个链接...

https://help.github.com/articles/generating-ssh-keys

......它指出...

如果你已经决定不使用推荐的HTTPS方法,我们可以使用SSH密钥来建立你的电脑和GitHub的之间的安全连接。 下面的步骤将引导您完成生成SSH密钥,然后将公共密钥到你的GitHub帐户。

为什么HTTPS推荐的方法是什么? 有没有在SSH方法某种形式的安全漏洞还是慢? 我创建了一个SSH密钥,那么这将减轻任何安全问题?

Answer 1:

GitHub上已经改变了他们的建议数次( 例如 )。

看来,他们目前建议HTTPS,因为它是最容易建立的网络和平台,最广泛的和谁是新的这所有用户。

有一个在SSH没有固有缺陷(如果有,他们将其禁用) - 在下面的链接,你会看到,他们仍然提供有关SSH连接的详细信息太:

  1. HTTPS不太可能被防火墙阻止。

    https://help.github.com/articles/which-remote-url-should-i-use/

    在https://开头的URL克隆可在所有存储库,公共和私人。 这些网址的工作无处不在 - 即使你是一个防火墙或代理服务器后面。

  2. HTTPS连接允许credential.helper缓存密码。

    https://help.github.com/articles/set-up-git

    好消息:凭证帮手,只有当你克隆一个HTTPS URL回购工作。 如果您使用SSH回购网址,而不是,SSH密钥用于认证。 虽然我们不建议这样做,如果你想使用这个方法,看看这个指南,帮助生成和使用SSH密钥。



Answer 2:

HTTPS是由GitHub的建议,因为它是一个端口在所有防火墙上打开。 SSH不总是作为用于通信的端口的网络上开放,并且通常通过网络防火墙阻止。

因此,一个GitHub的仓库是更通用的使用HTTPS比SSH。

SSH密钥更安全,因为它们不提供访问您的GitHub帐户,但如果有人得到你的私钥保持他们可以做一个空仓库的力推和消灭更改历史记录。

我的选择是使用SSH使用密码保护的密钥。 SSH可以通过HTTPS如果网络你是块SSH端口隧道。

https://help.github.com/articles/using-ssh-over-the-https-port/

如果使用HTTPS,我会建议增加双因素身份验证,保护您的帐户,以及您的仓库。



Answer 3:

要么你被引用错误或github上有不同的页面不同的推荐,或者它们可能随时间学习并更新他们的RECO。

我们强烈建议使用GitHub的交互时,使用SSH连接。 SSH密钥是一个方法来识别受信任的计算机,而不涉及密码。 下面的步骤将引导您完成生成SSH密钥,然后将公共密钥到你的GitHub帐户。

https://help.github.com/articles/generating-ssh-keys



Answer 4:

另请参阅:官方我应该使用哪种远程网址? 回答help.github.com。

编辑:

看来,它不再需要有一个公共回购写访问使用SSH的网址,使我原来的解释无效。

原版的:

显然是有利于HTTPS URL中的主要原因是,SSH网址不会公开回购的工作,如果你没有到回购写访问。

使用SSH的网址是鼓励部署到生产服务器,但是 - 想必这里的环境就像Heroku的服务。



Answer 5:

启用通过HTTPS SSH连接,如果它被防火墙阻止

如果测试上的SSH HTTPS端口是可能的,这种运行SSH命令:

$ ssh -T -p 443 git@ssh.github.com
Hi username! You've successfully authenticated, but GitHub does not
provide shell access.

如果奏效,太棒了! 如果没有,你可能需要按照我们的故障排除指南 。

如果你能够通过SSH进入git@ssh.github.com通过端口443,则可以覆盖你的SSH设置以武力GitHub的任何连接尽管这服务器和端口上运行。

要设置这在你的ssh配置,编辑在文件~/.ssh/config ,并添加此部分:

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

您可以测试这个工程由一次连接到GitHub上:

$ ssh -T git@github.com
Hi username! You've successfully authenticated, but GitHub does not
provide shell access.

从身份验证到GitHub上/使用SSH通过HTTPS端口



Answer 6:

这有可能争辩说,用茶匙密钥进行身份验证的安全性较低,因为我们往往更定期更改密码,我们比我们产生新的SSH密钥。

这限制了他们会兑现给SSH密钥可以帮助强制用户向定期刷新SSH密钥的做法寿命服务器。



Answer 7:

也许是因为它很难从你的大脑窃取密码,然后从您的计算机窃取密钥文件(至少就我所知,也许已经或方法存在一定的物质,但是这是一个无限的讨论)? 如果你的密码保护密钥,然后你再次使用密码和出现同样的问题(但有些人可能会认为,你必须做更多的工作,因为你需要拿到钥匙,然后破解密码)。



文章来源: Why does GitHub recommend HTTPS over SSH?