为什么克隆 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 需要密钥(帐户)才能工作。
如果您使用 git
或 https
协议,则不需要 ssh 密钥。如果您不想使用帐户/身份验证,git
协议可能是您最好的选择。
如果您通过 SSH 连接,Git(实际上是 Git 使用的 SSH 代理)将始终要求以私钥形式进行身份验证。这是因为 SSH 协议实际上并不关心您访问的是 public 还是私有存储库。
您可以通过查看远程 URL 轻松确定用于克隆的协议。 SSH 网址如下所示:
ssh://git@github.com/<user>/<repo>.git
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
我认为要克隆私人仓库,我们需要验证计算机是否可信。但是对于 public 存储库,如果 github?
的设置中未添加 ssh 密钥,不确定为什么 git 被设计为要求机器的 ssh 密钥Git 仅当您使用 ssh 协议时才需要 ssh 密钥 - 不存在匿名 ssh 之类的东西,ssh 需要密钥(帐户)才能工作。
如果您使用 git
或 https
协议,则不需要 ssh 密钥。如果您不想使用帐户/身份验证,git
协议可能是您最好的选择。
如果您通过 SSH 连接,Git(实际上是 Git 使用的 SSH 代理)将始终要求以私钥形式进行身份验证。这是因为 SSH 协议实际上并不关心您访问的是 public 还是私有存储库。
您可以通过查看远程 URL 轻松确定用于克隆的协议。 SSH 网址如下所示:
ssh://git@github.com/<user>/<repo>.git
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