在GitHub网站上有一个链接…

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

... 它说…

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

为什么推荐使用HTTPS ?SSH方法是否存在某种安全漏洞,或者它更慢?我创建了一个SSH密钥,那么这会减轻任何安全问题吗?


当前回答

要么你引用错误,要么github在不同的页面上有不同的推荐,要么他们可能会随着时间的推移而学习并更新他们的建议。

我们强烈建议在与GitHub交互时使用SSH连接。SSH密钥是一种不需要密码就能识别受信任计算机的方法。下面的步骤将引导您生成SSH密钥,然后将公钥添加到您的GitHub帐户。

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

其他回答

要么你引用错误,要么github在不同的页面上有不同的推荐,要么他们可能会随着时间的推移而学习并更新他们的建议。

我们强烈建议在与GitHub交互时使用SSH连接。SSH密钥是一种不需要密码就能识别受信任计算机的方法。下面的步骤将引导您生成SSH密钥,然后将公钥添加到您的GitHub帐户。

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

支持HTTPS的另一个原因是,如果多个用户在中央服务器(比如开发机器)上管理代码,那么每个用户都需要创建自己的ssh密钥才能使用基于ssh的连接。如果连接是HTTPS,则此问题不存在。

我猜你可能会说,设置自己的密钥作为使用存储项目的服务器的一部分并不是那么困难,但这是完成工作的进一步障碍。

GitHub已经多次更改了他们的推荐(例如)。

目前看来,他们之所以推荐HTTPS,是因为它是最容易在最广泛的网络和平台上设置的,而且对于那些刚接触这一切的用户来说也是如此。

SSH没有固有的缺陷(如果有的话,他们会禁用它)——在下面的链接中,你会看到他们仍然提供了SSH连接的详细信息:

HTTPS is less likely to be blocked by a firewall. https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls The https:// clone URLs are available on all repositories, regardless of visibility. https:// clone URLs work even if you are behind a firewall or proxy. An HTTPS connection allows credential.helper to cache your password. https://docs.github.com/en/get-started/quickstart/set-up-git#connecting-over-https-recommended If you clone with HTTPS, you can cache your GitHub credentials in Git using a credential helper. For more information, see "Cloning with HTTPS urls" and "Caching your GitHub credentials in Git."

有人可能会说,使用SSH密钥进行身份验证不太安全,因为我们倾向于更定期地更改密码,而不是生成新的SSH密钥。

限制给定SSH密钥使用寿命的服务器可以帮助强制用户定期刷新SSH密钥。

另请参阅:我应该使用哪个远程URL ?在helpp.github.com上回答。

编辑:

似乎不再需要对公共回购具有写访问权限才能使用SSH URL,这使得我最初的解释无效。

原:

显然,偏爱HTTPS URL的主要原因是,如果您没有对该回购的写访问权,SSH URL将无法与公共回购一起工作。

但是,鼓励使用SSH url部署到生产服务器,这里的上下文可能是像Heroku这样的服务。