【问题标题】:Why github doesn't ask me for username/password?为什么 github 不向我询问用户名/密码?
【发布时间】:2018-10-02 13:16:42
【问题描述】:

我尝试从 github 源 git pull 得到这个:

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

而不是提示用户名和密码。我的~/.ssh/ 文件夹是空的,所以我很困惑publickey 是什么意思。

git 如何决定是否询问用户名/密码?我怎么能强迫他这样做? (出于某种原因,我不想使用 ssh 密钥)

【问题讨论】:

标签: git github ssh


【解决方案1】:

发生这种情况是因为您使用的是 SSH url,并且您的 SSH 设置可能未配置(您还说您的 ~/.ssh 目录为空)。

您可以使用以下命令检查当前的远程 url:

git remote -v

如果要使用基本身份验证(用户名+密码),则必须使用https。

在您的存储库中执行此操作:

git remote set-url origin https://github.com/your-username/repository.git

your-username 替换为您的 GitHub 用户名,将 repository 替换为存储库名称。另外,将origin 替换为您的远程名称(如果您使用的是另一个远程名称,则可能不是)。

正如@Abizern 提到的,您可以configure the SSH keys 并改用SSH url。这可能会加快您的工作,而不是让您每次都输入用户名/密码。

还有其他方法可以防止 git 每次都询问您的密码。 Here就是其中之一,通过设置缓存时间。

...或者您可以在 HTTPS url 中提供您的密码/令牌,如 here 所述。

git remote set-url origin https://username:password@github.com/username/repository.git

【讨论】:

  • 您不必每次都输入用户名密码。同样,网站上有文档告诉您如何设置 osx-credetial-helper 以在您第一次使用它后将其保存在您的钥匙串中。 help.github.com/articles/caching-your-github-password-in-git
  • @Abizern 我已经在我的回答中指出了那个网址。 :)
  • 我已经为这个问题寻找了 2 个小时的解决方案,并且在 HTTPS url 中设置密码/令牌是唯一有效的方法(当我尝试时它不会询问我的密码拉,即使我重置了经理)。很好的答案。
【解决方案2】:

或者,为 Github 设置一个 SSH 密钥。

这很简单 - GitHub 网站上有完整的指南。

这还具有允许您在不访问计算机的情况下从 GitHub 站点撤消密钥的优点。如果您使用的是工作计算机,这很有用。

编辑添加

我应该注意到 GitHub 建议使用 https 进行访问。

【讨论】:

    猜你喜欢
    • 2023-02-10
    • 1970-01-01
    • 2018-03-02
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多