当前位置: 首页 > 知识库问答 >
问题:

启用2FA时,在不使用个人访问令牌的情况下推送到GitHub存储库

施梓
2023-03-14

不久前我在GitHub上设置了2因子身份验证。所以,有一次我在命令行中工作,想要推到我的repo。我输入了我的用户名和密码,但它失败了,给出了如下错误

USERNAME@MYCOMPUTER:~/MyRepo$ git push
Username for 'https://github.com': GitHubUsername
Password for 'https://GitHubUsername@github.com': GitHubPassword 
remote: Invalid username or password.
fatal: Authentication failed for ' 
https://github.com/GitHubUsername/MyRepo/'

所以,我读了这篇文章,得到了我必须生成一个个人访问令牌来推送任何东西的解决方案。很好,但我认为这是一个有点困难的过程,因为首先我不记得那个巨大的令牌,其次,将访问密钥存储在文本文件中不是一件安全的事情。

所以,如果有人能给出一个简单的解决方案,推动我的回购,而不禁用2FA,这将是非常好的。-谢谢!

共有1个答案

岳承悦
2023-03-14

您应该在SSH上使用Github而不是在https上使用Github。

https://help.github.com/en/articles/connecting-to-github-with-ssh

虽然https设置很容易,但ssh连接的设置要稍微困难一些,这就是为什么https被用作标准选项的原因。

当您想要连接到github时,需要按照以下步骤操作:

>

  • 创建ssh密钥

    您可以按照以下方式创建密钥:

    1. 运行ssh-keygen-t rsa-b 4096-c“your_email@example.com”
    2. 按照标准选项设置密码。
    3. 可选地配置SSH代理

    告诉Github您的新密钥

    创建ssh密钥时,它会生成两个文件id_rsaid_rsa.pub.pub文件包含公钥。

    您可以通过转到设置,按“ssh keys”,并在那里添加该键,将该键上传到Github

    更新本地reposirory以使用ssh密钥

    现在您已经告诉github您的新fance密钥,您需要在磁盘上配置您的存储库来使用这个密钥。

    您可以使用git remote命令执行以下操作:

    git remote set-url origin https://github.com/USERNAME/REPOSITORY.git
    

  •  类似资料:
    • 所以我不久前用2FA设置了我的github,并找到了这个最初的解决方案来解决我用密码登录的问题。然而,记住这个令牌几乎是不可能的——而且将它存储在txt中也不安全。我如何在不从HTTPS更改为SSH的情况下规避这个问题?

    • 首先,我对Github操作还很陌生。 我试图使用Github操作自动将我的回购推到带有访问令牌的Gitlab。但是,我总是得到错误 我尝试了GitLab Remote:HTTP Basic:Access denied and fatal Authentication,中的解决方案,但如果我将该行放在.yml中,它将中断并返回错误代码5。如果我不放那一行,我会得到上面描述的错误。 带有尝试历史记录的

    • 如果是,是否有任何首选的存储方式?

    • 我在我的Raspberry Pi上克隆了GitHub上的一个项目,创建了一个新的分支,并将所有内容推送到存储库中。为此,我需要下一个命令: 我遇到的问题是我无法将分支推到GitHub.com。我需要输入我的用户名和密码,但我不能使用2FA。这是Git或GitHub中的一个bug吗?是否有方法获得身份验证密钥并输入它? 我不会在GitHub上启用2fa。

    • 问题内容: 我可以通过多种方式提出这个问题,例如如何使用Github个人访问令牌配置Jenkins凭据如何使用Github个人访问令牌在Jenkins中克隆Github存储库 所以这是问题 我知道的替代解决方案 连接 Jenkins中的配置,但我的问题是如何使用以下方法与Github建立Github连接 问题答案: 经过来自Stackoverflow的多个线程的多次讨论之后 我发现一个有用的线程。

    • 我有一个npm包,它依赖于package.json中的私有github服务器中的回购: github服务器使用个人访问令牌(在身份验证期间用作密码)进行安全保护。在本地构建中,用户可以为https://private.github.example.com存储其,git将在npm构建期间自动使用它们访问github存储库。 我在Jenkins中也有一个技术用户,它通常可以通过个人访问令牌访问gith