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

时间:2015-06-22 20:59:37

标签: git github ssh

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

2 个答案:

答案 0 :(得分:7)

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

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

  1. ssh://git@github.com/<user>/<repo>.git
  2. git@github.com:<user>/<repo>.git
  3. 但是,在GitHub上,您始终可以使用git://协议而不是ssh://来克隆公共存储库,而不需要身份验证:

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

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

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

答案 1 :(得分:4)

只有在使用ssh协议时,Git才需要ssh密钥 - 不存在匿名ssh,ssh需要密钥(帐户)才能工作。

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

More information on git protocols