启用2FA时推送到没有个人访问令牌的GitHub存储库

时间:2019-04-01 05:12:59

标签: git github token push commit

我前一段时间在 GitHub 上设置了 2因子身份验证。因此,一旦我在命令行中工作并想推送到我的仓库。我输入了用户名和密码,但是由于出现这样的错误

而失败
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/'

因此,我读了post,并获得了解决方法,我必须生成一个 个人访问令牌 推送任何内容。很好,但是我认为这有点困难,因为First 我不记得大量的令牌和Second 在文本文件中存储访问密钥不是安全的事情。 / strong>

因此,如果有人可以提供一种简单的解决方案来推送到我的仓库而不禁用2FA,那将是非常不错的。 -谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

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

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

  1. 创建ssh密钥

    通过ssh连接时,它使用ssh密钥而不是普通密码工作,从而提高了安全性,因为即使服务器受到损害也不会泄漏密码,甚至破坏连接的攻击者也无法更改您发送或发送的数据。从Github接收/接收。 Ssh密钥还具有可选密码,您需要提供这些密码才能使用该密钥。

    通常,ssh-key与称为ssh-agent的程序结合使用,并且该程序基本上将已解密的密钥“永久”或超时地“缓存”在内存中,因此不必多次填充密码在很短的时间内。

    You can create a key as follows:

    1. 运行ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    2. 遵循标准选项,然后设置密码。
    3. Optionally configure an ssh-agent
  2. 告诉Github关于您的新密钥

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

    You can upload this key to Github,方法是:进入设置,按“ ssh键”,然后在其中添加键

  3. 更新本地存储库以使用ssh键

    现在,您已将新的fance密钥告诉了github,您需要在磁盘上配置存储库以使用此密钥。

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

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

    通过执行git fetch测试新设置,它会要求您提供ssh密钥密码,然后获取所有更新分支。