我认为 GitHub 推荐 HTTPS 有几个原因
从任何地方访问存储库都更简单,因为您只需要您的帐户详细信息(不需要 SSH 密钥)即可写入存储库。
HTTPS 是在所有防火墙中都开放的端口。SSH 并不总是作为与外部网络通信的端口打开
因此,使用 HTTPS 比使用 SSH 更普遍地访问 GitHub 存储库。
在我看来,SSH 密钥值得在创建它们时进行一些额外的工作
SSH 密钥不提供对您的 GitHub 帐户的访问权限,因此如果您的密钥被盗,您的帐户不会被劫持。
对您的 SSH 密钥使用强大的关键字可以限制任何滥用,即使您的密钥被盗(在首次破坏对您的计算机帐户的访问保护之后)
如果您的 GitHub 帐户凭据(用户名/密码)被盗,可以更改您的 GitHub 密码以阻止您访问,并且可以快速删除您的所有共享存储库。
如果私钥被盗,有人可以强制推送一个空存储库并清除您拥有的每个存储库的所有更改历史记录,但不能更改您的 GitHub 帐户中的任何内容。尝试从您有权访问您的 GitHub 帐户的违规行为中恢复会容易得多。
我的偏好是使用带有密码保护密钥的 SSH。我为每台计算机设置了不同的 SSH 密钥,因此如果该计算机被盗或密钥泄露,我可以快速登录 GitHub 并删除该密钥以防止不必要的访问。
如果您所在的网络阻止了 SSH 端口,则可以通过 HTTPS 建立 SSH 隧道。
https://help.github.com/articles/using-ssh-over-the-https-port/
如果您使用 HTTPS,我建议您添加双重身份验证,以保护您的帐户和存储库。
如果您将 HTTPS 与工具(例如编辑器)一起使用,您应该使用 GitHub 帐户中的开发人员令牌,而不是在该工具配置中缓存用户名和密码。令牌将减轻使用 HTTPS 的一些潜在风险,因为令牌可以配置为非常特定的访问权限,并且如果该令牌被泄露,则很容易被撤销。