【发布时间】:2023-03-16 23:37:01
【问题描述】:
我认为要克隆一个私人仓库,我们需要验证计算机是受信任的。但是对于公共 repo,如果 github 的设置中没有添加 ssh 密钥,不知道为什么 git 设计为要求机器的 ssh 密钥?
【问题讨论】:
我认为要克隆一个私人仓库,我们需要验证计算机是受信任的。但是对于公共 repo,如果 github 的设置中没有添加 ssh 密钥,不知道为什么 git 设计为要求机器的 ssh 密钥?
【问题讨论】:
如果您通过 SSH 连接,Git(实际上是 Git 使用的 SSH 代理)将总是要求以私钥的形式进行身份验证。这是因为 SSH 协议实际上并不关心您访问的是公共存储库还是私有存储库。
您可以通过查看远程 URL 轻松确定用于克隆的协议。 SSH 网址如下所示:
ssh://git@github.com/<user>/<repo>.gitgit@github.com:<user>/<repo>.git但是,在 GitHub 上,您始终可以使用 git:// 协议而不是不需要身份验证的 ssh:// 来克隆公共存储库:
git clone git://github.com/<user>/<repo>.git
或者,使用 HTTPS,它(如果没记错的话)只需要对私有存储库进行身份验证:
git clone https://github.com/<user>/<repo>.git
【讨论】:
仅当您使用 ssh 协议时,Git 才需要 ssh 密钥 - 不存在匿名 ssh 之类的东西,ssh 需要密钥(帐户)才能工作。
如果您使用git 或https 协议,则不需要 ssh 密钥。如果您不想使用帐户/身份验证,git 协议可能是您的最佳选择。
【讨论】: