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

Lin*_* Ma 3 git ssh github

我认为对于克隆私有仓库,我们需要验证计算机是否可信.但对于一个公共回购,不知道为什么git被设计为如果没有在github的设置中添加ssh密钥请求机器的ssh密钥?

hel*_*ert 7

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

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

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

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

git clone git://github.com/<user>/<repo>.git
Run Code Online (Sandbox Code Playgroud)

或者,使用HTTPS,它将(如果内存服务)仅需要对私有存储库进行身份验证:

git clone https://github.com/<user>/<repo>.git
Run Code Online (Sandbox Code Playgroud)


eis*_*eis 5

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

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

有关git协议的更多信息