关于git:启用2FA时,在没有个人访问令牌的情况下推送到GitHub存储库

Push to GitHub Repository without Personal Access Token when 2FA is enabled

我在GitHub上设置了2因素身份验证。所以,有一次我在命令行工作,想推动我的回购。我输入了我的用户名和密码,但没有给出这样的错误

1
2
3
4
5
6
USERNAME@MYCOMPUTER:~/MyRepo$ git push
Username for 'https://github.com': GitHubUsername
Password for 'https://[email protected]': GitHubPassword
remote: Invalid username or password.
fatal: Authentication failed for '
https://github.com/GitHubUsername/MyRepo/'

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

所以,如果有人能给出一个简单的解决方案,在不禁用2FA的情况下推到我的回购协议,那将是非常好的。-谢谢!


您不应该在https上使用github,而应该在ssh上使用github。

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

虽然https设置很简单,但是设置ssh连接有点困难,这就是为什么将https用作标准选项的原因。

要连接到GitHub,需要执行以下步骤:

  • 创建一个ssh密钥

    当您通过ssh连接时,它使用ssh密钥而不是普通的密码,这会提高您的安全性,因为即使是服务器泄露也不会泄露您的密码,即使是破坏您的连接的攻击者也无法更改您向GitHub发送或从GitHub接收的数据。ssh密钥还具有可选密码,您需要提供这些密码才能使用所述密钥。

    通常,ssh密钥与一个称为ssh代理的程序结合在一起,这个程序基本上将解密的密钥"缓存"到内存中,要么永久保存,要么超时保存,因此不必在短时间内多次填充密码。

    可以按如下方式创建键:

  • 运行ssh-keygen -t rsa -b 4096 -C"[email protected]"
  • 按照标准选项操作,并设置密码。
  • 可选配置ssh代理
  • 告诉Github你的新钥匙

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

    您可以转到设置,按"ssh键",然后在其中添加键,将此键上载到github。

  • 更新本地资源库以使用ssh密钥

    既然您告诉了Github有关新Fance密钥的信息,那么您需要在磁盘上配置存储库以使用该密钥。

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

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

    通过执行git fetch测试新的设置,它应该请求您的ssh密钥密码,然后获取任何更新分支。