推送到GitHub时2FA会出现问题

问题描述 投票:12回答:2

我在我的Raspberry Pi上的GitHub上克隆了一个项目,创建了一个新的分支并将所有内容都推送到了存储库。为此我需要下一个命令:

git clone https://www.github.com/heinpauwelyn/my_repo
git checkout -b raspberry
git push origin raspberry

我遇到的问题是我无法将分支机构推向GitHub.com。我需要输入我的用户名和密码,但我不能使用2FA。这是Git或GitHub中的错误,是否有办法获取身份验证密钥并输入?

我不会在GitHub上启用2FA。

git github git-push two-factor-authentication
2个回答
14
投票

使用2FA时,您必须创建一个个人访问令牌,以便在使用HTTPS URL在命令行上对GitHub进行身份验证时用作密码:https://help.github.com/articles/which-remote-url-should-i-use/#when-2fa-is-enabled

或者你可以用ssh https://help.github.com/articles/which-remote-url-should-i-use/#cloning-with-ssh-urls克隆(也可能有用:https://help.github.com/articles/generating-an-ssh-key/


2
投票

使用2FA,您需要在推送代码时生成个人访问令牌。在将代码推送到Github时,该个人令牌将用作密码。您可以看到如何从https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line创建个人访问令牌。当您使用http url克隆repo时将使用它。它将适用于所有存储库。

如果您已通过SSH克隆,那么在启用2F身份验证后,您可以非常轻松地推送您的更改,而无需更改正常行为。为此,您使用SSH密钥密码作为密码。首先,它要求您为存储库创建SSH密钥。您可以从https://help.github.com/en/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent生成SSH密钥。它将仅针对已生成此SSH密钥的特定repsority仅使用单个存储库。


2
投票

您必须生成访问令牌并使用访问令牌而不是密码。例如:

$ git clone https://github.com/username/repo.git
Username: your_username
Password: your_token

Doc:https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line


0
投票

在GitHub帐户上添加2FA后,您可以使用repo的HTTPS URL或用于推送,提取,克隆或从本地服务器获取操作的SSH URL。区别在于:

使用HTTPS URL时:现在用于推送,拉取,提取或克隆操作,您必须从GitHub帐户生成个人访问令牌,并在您被要求输入密码时将其用作密码。您必须保持令牌安全。

访问:Creating a personal access token for the command line

使用SSH URL时:通过回购的SSH URL进行推送,拉取,获取或克隆,您需要为您的帐户设置私钥和公共对。这将需要一些时间,但是一旦您完成设置私钥和公钥,您将永远不会被提示输入用户名或密码,因为现在GitHub知道您的身份。

要创建私钥和公钥对,请阅读:Connecting to GitHub with SSH

使用HTTPS URL和SSH URL之间的区别:

虽然任何防火墙或任何网络都不会阻止HTTPS,但有时可能会阻止SSH,但您可能无法使用它,但很少发生这种情况。使用HTTPS时,如上所述,您将被要求提供用户名和密码(这是您的个人访问令牌),您可以使用credential.helper缓存它,但它将保存为纯文本。

对于SSH,您可以为私钥How do I add a password to an OpenSSH private key that was generated without a password?生成密码

现在您的私钥将受到保护,但无论何时您推送,拉动,克隆或获取,每次都会询问密码。为避免这种情况,您可以使用SSH代理,SSH Key - Still asking for password and passphrase

© www.soinside.com 2019 - 2024. All rights reserved.