【问题标题】:Why is GitHub not accepting when I try to set user.name and password in a terminal? [duplicate]当我尝试在终端中设置用户名和密码时,为什么 GitHub 不接受? [复制]
【发布时间】:2020-06-15 13:46:50
【问题描述】:

我尝试输入这些命令:

% git config --global user.name "xxx"
% git config --global user.password "xxx"

然后当我尝试推送时,我仍然发现它每次都要求输入用户名和密码

% git push
Username for 'https://github.com': xxx
Password for 'https://xxx@github.com': xxx

【问题讨论】:

  • user.password 不是 git config 设置(所以这只是将一串文本放入 git config 中没有任何内容) user.name 仅设置提交时使用的名称 - 两者都不是其中一些与 GitHub 身份验证有关,从这里开始可能是明智的:help.github.com/en/github/using-git/…
  • 我在那里看到“您可以通过配置 Git 为您存储密码来避免提示您输入密码。一旦配置好,当您拉取或推送存储库时,Git 会自动使用您缓存的密码。 "想知道如何做到这一点。
  • "Caching your GitHub password in Git" - 通过单击页面继续提及的链接 (:. 请注意,使用 git@ 并配置 ssh 密钥是(我认为)使用 git 和除了生成密钥对并将其添加到您的帐户之外,不需要任何配置。

标签: git github


【解决方案1】:

这和那是不同的东西。 user.password 根本不是 git 配置项,user.name 只是你使用 git commit 时默认使用的名称:https://git-scm.com/docs/git-config#Documentation/git-config.txt-username

在执行git push 时,您看到的提示是 github 凭据,这是一组完全不相关的标识符,特定于 github,不必与用户相关联。您在 git 中配置的名称(和 user.email)。

Git does have a separate category for credentials。您可以配置一个 credential helper,它为 git 提供使用的凭证(可能按域过滤)。默认情况下,git 带有两个助手,cache(将凭据存储在内存中一段时间​​,默认为 1500 万)和store(将凭据存储在未加密的磁盘上)。

如果您只是偶尔推送一次,前者不是很有用(尽管您可以将超时增加到更大的值,例如 30000 的超时将是 8 小时,因此您必须在开始时输入您的凭据当天的情况下不必担心,直到第二天),后者不是很安全(尽管您可以将存储文件存储在加密的拇指驱动器或其他东西上)。

还有第三方提供的凭证助手,如果它有一个,例如,它可以与您系统的凭证管理系统集成。 GCM 与 Windows Credential Store 集成,osxkeychain 与 OSX 的内置钥匙串集成(实际上是 git 提供的,尽管有些无证),等等...

另一种选择是推/拉 ssh 并使用 ssh-agent 记住您的密钥和凭据。

【讨论】:

    猜你喜欢
    • 2021-07-25
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    相关资源
    最近更新 更多