【问题标题】:Why is a machine's ssh key required to clone a public Git repository?为什么克隆公共 Git 存储库需要机器的 ssh 密钥?
【发布时间】:2023-03-16 23:37:01
【问题描述】:

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

【问题讨论】:

    标签: git github ssh


    【解决方案1】:

    如果您通过 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
    

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

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

    【讨论】:

      【解决方案2】:

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

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

      (More information on git protocols)

      【讨论】:

        猜你喜欢
        • 2011-11-22
        • 1970-01-01
        • 1970-01-01
        • 2017-03-26
        • 2016-11-11
        • 2017-10-07
        • 1970-01-01
        • 2017-08-07
        • 1970-01-01
        相关资源
        最近更新 更多