【问题标题】:Why does github keep asking me for repo credentials?为什么 github 一直要求我提供 repo 凭据?
【发布时间】:2012-04-24 23:09:11
【问题描述】:

我们最近将我们的 github 从一个帐户所有者转移到另一个帐户所有者,现在突然间当我在远程仓库上执行 git pull 或任何 git 命令时,它会要求我提供 github 用户名和密码。

我的 git-config 说:

[github]
    user = kamilski81
    token = *********

知道如何阻止它向我询问凭据并记住所有内容,新所有者是否必须设置我的 ssh 密钥或类似的东西?

【问题讨论】:

    标签: github


    【解决方案1】:

    gitconfig 中的 github 用户名和令牌仅用于与 GitHub API 交互(例如 hub gem 和 github 工具)。

    如果您通过 https 从 GitHub 存储库进行推送和拉取,那么您需要每次都指定您的凭据,或者连接到密码管理器以记住您的凭据。如何执行此操作取决于您的平台。

    最简单的做法是转到您的 github 帐户并将您的 SSH 公钥提交到您的帐户,然后将您的 github 远程切换为通过 ssh 而不是 https 进行推送/拉取。

    [编辑] 重新阅读问题后,我注意到您提到它以前是一个 GitHub 存储库,刚刚从一个所有者转移到另一个所有者。如果是这种情况,并且您可以通过指定凭据来进行推送和拉取,那么在我看来这是两种情况之一:

    • 之前的远程使用ssh,GitHub有你的SSH密钥;但是当所有者更改并且您更新了遥控器时,您将其更新为通过 https。
    • 以前的遥控器使用 https,但您正确设置了密码管理器来处理您的凭据,但它不再有效。

    【讨论】:

    • 谢谢 Alex,之前工作的遥控器是 https,新的遥控器也是 https。我在 Mac 上运行,我应该查看哪个密码管理器?
    【解决方案2】:

    如果您只执行一次 git pull 并且 Git 客户端仍然询问您的凭据而没有为您执行 git pull,那么问题应该是因为您的凭据不正确或尚未设置。

    但如果您收到对话框,要求为每个操作提供一个凭据,则意味着您的凭据未被记住。为此,您可以使用 Pageant 来存储您的 SSH 私钥,因此,每次您执行某项操作时,它都会从 Pageant 检索您的凭据,而不是询问您。

    【讨论】:

      【解决方案3】:

      在执行“remote -v”之后......问题是我的遥控器使用的是“https”遥控器而不是“git”遥控器。将遥控器更改为使用 git 而不是 https 解决了所有问题。

      【讨论】:

        【解决方案4】:

        按照这篇文章为我整理了一下: https://help.github.com/articles/why-is-git-always-asking-for-my-password

        git remote set-url origin git@github.com:user/repo.git
        

        【讨论】:

        • 基本上,这是最短的答案:)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-26
        • 2020-04-26
        • 2019-09-13
        • 2020-08-03
        • 2013-01-13
        相关资源
        最近更新 更多