【问题标题】:GitHub, HTTPS and Mac applicationGitHub、HTTPS 和 Mac 应用程序
【发布时间】:2013-10-13 21:36:13
【问题描述】:

我知道 GitHub 中的 SSH 不会导致任何问题(即每次都无需输入用户名/密码),但我需要使用 HTTPS 进行我的回购。

现在,我 git inited 回购了,我承诺了,我做了一个 git remote add origin https://github.com/user/repo.git按照 GitHub 的建议

我正要发git push -u origin master:首先它提示我输入用户名和密码,然后回答:

remote: Anonymous access to user/repo.git denied.
fatal: Authentication failed for 'https://github.com/user/repo.git/'

我 300% 确定我输入了正确的密码(无论如何我又试了几次)。 我到处搜索,然后我尝试了最后的机会:为 Mac 安装 GitHub 应用程序。 我输入了我的凭据,输入了他们发送给我的 2 因素身份验证代码,然后再次尝试推送:这次成功了。

为什么? GitHub 应用在幕后做了什么?和2-factor auth有关系吗?

无论如何,我将无法在我设置的每台机器上下载该应用程序,也许是通过使用一些脚本自动执行此过程。

【问题讨论】:

标签: macos git github


【解决方案1】:

如果您已激活双重身份验证,您的 GitHub 密码将无法使用。

您需要生成个人访问令牌,正如我在“Configure Git clients, like GitHub for Windows, to not ask for authentication”中解释的那样。

该长密码(40 个字符)将用作您的 GitHub 密码 不需要第二次身份验证。

PAT(个人访问令牌)和您的 Github 密码帐户之间的区别:

  • 不需要第二步,但是:
  • 它比简单的密码更复杂(不需要记住)
  • 您可以根据需要生成任意数量(例如,为您访问 GitHub 的每台不同的计算机生成一个)
  • 您可以随时撤销它(比更改 GitHub 密码更容易)

您可以在 .netrc.gpg 文件中加密您的 GitHub 凭据,正如我在“Is there a way to skip password typing when using https:// github”中说明的那样。
我发现这远远优于内存缓存机制(如 credential-osxkeychain),因为您不必在每个会话中输入 GitHub(长而复杂的令牌)密码。
您只需为该 GitHub 登录/令牌凭据或您在 ~/.netrc.gpg 文件中加密的任何其他凭据输入 gpg 密钥的密码即可。

【讨论】:

    猜你喜欢
    • 2012-11-05
    • 2021-03-18
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 2022-10-06
    • 2012-06-17
    相关资源
    最近更新 更多