【问题标题】:SSH key for multiple github repositories多个 github 存储库的 SSH 密钥
【发布时间】:2021-09-07 05:47:20
【问题描述】:

我按照本指南为 github 存储库设置了 SSH 密钥对:

https://linuxkamarada.com/en/2019/07/14/using-git-with-ssh-keys/#.YNNfCDZKjRZ

一般来说,这个密钥不应该对我的帐户有效吗,即是否应该适用于我推送的任何回购协议?它似乎适用于我最初为其设置的存储库,但不适用于我此后在同一帐户下创建的新存储库。我需要重复这些步骤吗?他们中的大多数似乎不应该重复;我已经有了密钥对,它存储在我的 GitHub 帐户中,并且 GitHub 已添加到我信任的主机中。

【问题讨论】:

  • 请不要让我们阅读并遵循您链接的本指南,而是向我们展示当前情况、期望和您面临的问题。你到底在说什么键?因为在 GitHub 中,您在不同的基础上拥有多个不同的密钥。
  • 我不明白你所说的 Shouldn't this key work for my account in general 是什么意思。您是在说每次push 都不输入密码吗?该工作由 ssh-agent 完成,该 ssh-agent 缓存会话的解密私钥。还有check this
  • 您存储在github.com/settings/keys 中的(公共)密钥能够读取/写入您的所有存储库。
  • @DanielW。是的,这正是我的困惑。我在该链接上添加了一个公钥。对于我的一个存储库,它可以工作,而对于另一个,我会收到密码提示
  • 您是否对两个存储库都使用了 ssh URL?

标签: git github ssh ssh-keys


【解决方案1】:

GitHub 提供了两种访问存储库的主要方式:HTTPS 和 SSH。如果您在帐户设置中设置了 SSH 密钥,那么您应该能够使用它来推送到您有权访问的任何存储库如果您使用的是 SSH。但是,如果系统提示您使用用户名和密码,那么您使用的是 HTTPS,而不是 SSH,因为 GitHub 不提供通过 SSH 协议的用户名和密码访问。

如果您想在不同的存储库中使用 SSH,请转到 Web 界面中的存储库并从下拉列表中复制 SSH URL。然后进入该存储库并运行git remote -v。这应该会向您显示您拥有的所有遥控器及其 URL。假设您要更改的远程名称称为 origin,请运行以下命令,其中 URL 是您复制的 SSH URL:

$ git remote set-url origin URL

这会将存储库设置为使用 SSH 而不是 HTTPS。

【讨论】:

    【解决方案2】:

    我在该链接上添加了一个公钥。对于我的一个存储库,它可以工作,而对于另一个,我会收到密码提示 -

    这也可能是因为,对于第二个存储库,您输入了错误的 SSH URL,例如:

    <me>@github.com:<me>/<myRepository.git>
    # instead of:
    git@github.com:<me>/<myRepository.git>
    

    确保您的 URL 是第二种形式,使用 git 作为远程用户。

    并检查是否涉及 SSH:

    git -c core.sshCommand='ssh -Tv" push
    

    然后您将看到使用了什么 SSH 密钥。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      • 1970-01-01
      • 2017-03-23
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 2016-01-19
      相关资源
      最近更新 更多