为什么克隆 public Git 存储库需要机器的 ssh 密钥?

Why is a machine's ssh key required to clone a public Git repository?

我认为要克隆私人仓库,我们需要验证计算机是否可信。但是对于 public 存储库,如果 github?

的设置中未添加 ssh 密钥,不确定为什么 git 被设计为要求机器的 ssh 密钥

Git 仅当您使用 ssh 协议时才需要 ssh 密钥 - 不存在匿名 ssh 之类的东西,ssh 需要密钥(帐户)才能工作。

如果您使用 githttps 协议,则不需要 ssh 密钥。如果您不想使用帐户/身份验证,git 协议可能是您最好的选择。

(More information on git protocols)

如果您通过 SSH 连接,Git(实际上是 Git 使用的 SSH 代理)将始终要求以私钥形式进行身份验证。这是因为 SSH 协议实际上并不关心您访问的是 public 还是私有存储库。

您可以通过查看远程 URL 轻松确定用于克隆的协议。 SSH 网址如下所示:

  1. ssh://git@github.com/<user>/<repo>.git
  2. git@github.com:<user>/<repo>.git

但是,在 GitHub 上,您始终可以使用 git:// 协议而不是 ssh:// 克隆 public 存储库,后者不需要身份验证:

git clone git://github.com/<user>/<repo>.git

或者,使用 HTTPS,这将(如果没记错的话)只需要对私有存储库进行身份验证:

git clone https://github.com/<user>/<repo>.git