使用HTTPS或SSH与GitHub配合

11

我想知道连接到GitHub仓库的最佳方式是HTTPS还是SSH。 显然,GitHub似乎推荐使用HTTPS而不是SSH:

如果您决定不使用推荐的HTTPS方法,我们可以使用SSH密钥在您的计算机和GitHub之间建立安全连接。 下面的步骤将引导您生成SSH密钥,然后将公共密钥添加到GitHub帐户中。

然而,我看不出为什么HTTPS实际上会比SSH更好。 SSH通常应该比HTTPS更安全。 那么为什么GitHub推荐使用HTTPS呢?


1
显然,这更有效率。在Pro Git上有一篇很好的文章介绍它。 - user2062950
那是否意味着我应该使用HTTPS而不是SSH? - user2429940
2个回答

18

我从GitHub得到了一个答案:

我们建议使用https,因为它更简单易行,不需要了解或安全管理ssh密钥。

由于ssh和https都在幕后使用ssl,因此要求访问私钥而不是登录凭据的好处仅在于这些密钥被安全地管理。对于那些不熟悉ssh密钥最佳实践的人来说,这往往比让他们使用他们已经知道的程序维护用户名/密码登录凭据更难以解释。这些建议是为了让那些没有强烈意见的人选择最直接的方法。任何喜欢ssh密钥的人都可以这样做,因为它们得到了充分的支持。


11

https 比 ssh 更易于使用。

使用ssh,需要执行以下步骤:

  • 生成公钥/私钥
  • 将其发布到GitHub上
  • 启动(如果您真的想要安全)ssh-agent以输入您与私钥相关联的密码短语。

https只需重用您已经拥有的GitHub凭据。
如果你不想为每个git命令输入GitHub密码,可以将这些凭据存储在一个加密的~/.netrc.gpg(或者在Windows上是%HOME%/_netrc.gpg)文件中。
请参见完整的逐步示例,“在使用https://github时是否有跳过输入密码的方法”。

我将多个凭据(针对GitHub、BitBucket、内部repo等)存储在一个(加密的)文件中,并且早上只需输入一次密码(gpg密码短语)即可。
然后我就可以在整个白天访问所有这些资源,而无需输入凭据。


1
HTTPS更容易,但安全性如何? - user2429940
@user2429940 只要您不将密码保存在明文文件中,就可以获得相同类型的安全性。这就是我在 https://dev59.com/om435IYBdhLWcg3wkA5e#18362082 中提到的 gpg 加密如此重要的原因。 - VonC
@user2429940 更多细节请查看:http://security.stackexchange.com/questions/1599/what-is-the-difference-between-ssl-vs-ssh-which-is-more-secure - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接