2要素認証を使用したGitHubからhttps経由のGitクローン


129

最近、GitHubで2要素認証の使用を開始しましたが、プライベートリポジトリで通常の方法でhttps経由でgitを使用できなくなりました。

peter@computer:~$ git clone https://github.com/[...]/MyPrivateRepo
Cloning into 'MyPrivateRepo'...
Username for 'https://github.com': [...]
Password for 'https://[...]@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/[...]/MyPrivateRepo/'

2要素認証を無効にすると、以前と同様に使用できます。

peter@computer:~$ git clone https://github.com/[...]/MyPrivateRepo
Cloning into 'MyPrivateRepo'...
Username for 'https://github.com': [...]
Password for 'https://[...]@github.com': 
remote: Counting objects: 147, done.
remote: Total 147 (delta 0), reused 0 (delta 0), pack-reused 147
Receiving objects: 100% (147/147), 22.70 KiB | 0 bytes/s, done.
Resolving deltas: 100% (87/87), done.
Checking connectivity... done.

SSHを使用でき、すべてが機能することはわかっていますが、たとえばリクエストで認証トークンを送信することにより、HTTPS経由でGitHubを使用しながら2要素認証を維持できる方法はありますか?

回答:


155

ここでこれを修正する方法を見つけてください:

https://github.com/blog/1614-two-factor-authentication#how-does-it-work-for-command-line-git

コマンドラインGitではどのように機能しますか?

Git認証にSSHを使用している場合は、安心してください。何もする必要はありません。HTTPS Gitを使用している場合は、パスワードを入力する代わりに、個人用アクセストークンを入力します。これらは、個人のアクセストークンページに移動して作成できます


2
次の要点で見つけたように、トークンを.netrcファイルに追加して、認証を自動化することもできます。
マーティンウールステン

1
しかし、私はsshを使用しています。githubからプルすると、パスワードとユーザー名を入力するように促されます。これはなぜですか?返信ありがとうございます!
starkshang

3
Macでsudo git cloneの後にアクセストークンを入力した後もまだ機能しません。システムがパスワードフィールドにユーザー名とパスワードを要求しています。トークンを入力していますが、機能しません。同じエラーが発生する
ojus kulkarni

39
トークンをユーザー名として使用し、空のパスワードを入力します。
Kotie Smit

githubサイトから手動でトークンをコピーする場合(つまり、githubのコピーボタンを使用しない場合)、末尾の余分なスペースに注意してください。これがなぜうまくいかないのかを理解するのにしばらくかかりました。
gmargari

34

あたりとしてNitsewさん@答え、あなたの作成個人的なアクセストークンをして、ユーザー名として自分のトークンを使用し、空白のパスワードを入力します。

後で、すべてのプライベートリポジトリにアクセスするために資格情報は必要ありません。


アクセストークンをリモートサーバーのどこに保存することをお勧めしますか?
bdoubleu

2

苦労しているすべての人にとって、私にとってうまくいったことは、個人用アクセストークンを作成し、それをユーザー名とパスワードとして(開いたプロンプトで)使用することでした。


1

リポジトリで2FAが有効になっている場合。github.comが提供するアプリを使用することを強くお勧めします。ここにリンクがあります: https

ダウンロードしてインストールした後。ウィザードに従って、アプリはログインのためにワンタイムパスワードを提供するように求めてきます。ワンタイムパスワードを入力すると、リポジトリ/プロジェクトが表示されます。


Windowsを使用する場合にのみ役立ちます
Ian Turton

0

1番目:個人用アクセストークンを取得します。https://github.com/settings/tokens
2番目:アカウントとトークンを配置します。例はここにあります:

$ git push
Username for 'https://github.com':            # Put your GitHub account name
Password for 'https://{USERNAME}@github.com': # Put your Personal access token

個人用アクセストークンの作成方法に関するリンク:https : //help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.