10

我想知道在 HTTPS 和 SSH 之间连接到 GitHub 存储库的最佳方式是什么。显然 GitHub 似乎推荐 HTTPS over SSH:

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

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

4

2 回答 2

16

我从 GitHub 得到了答案:

我们建议使用 https,因为它的设置要简单得多,并且不需要 ssh 密钥的知识或安全管理。

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

于 2013-09-02T20:05:04.977 回答
10

https 比 ssh 更容易使用。

使用 ssh,您需要:

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

https 只是重用你已经拥有的 GitHub 凭证。
如果您不想为每个 git 命令输入 GitHub 密码,则可以将这些凭据存储在加密 ~/.netrc.gpg的(或%HOME%/_netrc.gpgWindows 上)中。在“ Is there a way to skip password typing when using https://github ”中
查看完整的分步示例。

我以这种方式将多个凭据(到 GitHub、BitBucket、内部存储库……)存储在一个(加密的)文件中,然后在早上输入一个密码(gpg 密码)。
然后我可以访问所有这些存储库,而无需在白天输入我的凭证。

于 2013-08-30T07:30:03.243 回答