我前一段时间在 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,那将是非常不错的。 -谢谢!
答案 0 :(得分:1)
您应该在ssh上使用github,而不是在https上使用Github。
https://help.github.com/en/articles/connecting-to-github-with-ssh
虽然https设置很容易,但设置ssh连接要困难一些,这就是为什么将https用作标准选项的原因。
要连接到github时,需要执行以下步骤:
创建ssh密钥
通过ssh连接时,它使用ssh密钥而不是普通密码工作,从而提高了安全性,因为即使服务器受到损害也不会泄漏密码,甚至破坏连接的攻击者也无法更改您发送或发送的数据。从Github接收/接收。 Ssh密钥还具有可选密码,您需要提供这些密码才能使用该密钥。
通常,ssh-key与称为ssh-agent的程序结合使用,并且该程序基本上将已解密的密钥“永久”或超时地“缓存”在内存中,因此不必多次填充密码在很短的时间内。
You can create a key as follows:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
告诉Github关于您的新密钥
创建ssh密钥时,它会生成两个文件id_rsa
和id_rsa.pub
,其中.pub
文件包含公用密钥。
You can upload this key to Github,方法是:进入设置,按“ ssh键”,然后在其中添加键
更新本地存储库以使用ssh键
现在,您已将新的fance密钥告诉了github,您需要在磁盘上配置存储库以使用此密钥。
您可以使用git remote
命令执行此操作:
git remote set-url origin https://github.com/USERNAME/REPOSITORY.git
通过执行git fetch
测试新设置,它会要求您提供ssh密钥密码,然后获取所有更新分支。