138

2FA を有効にしただけで (他に行った変更は思いつきません)、git がユーザー名とパスワードを要求しました。私は両方を提供しましたが、それらは「間違っていました」。ここで多くの解決策を試しました: Git プッシュにはユーザー名とパスワードが必要ですが、うまくいきませんでした。特に、https から ssh に切り替えると、ssh キーは

許可が拒否されました (公開鍵)。致命的: リモート リポジトリから読み取れませんでした。

$ git push
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

Username for 'https://github.com': **********
Password for 'https://mlbileschi@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/mlbileschi/scala.git/'

任意のヒント?

4

10 に答える 10

182

アクセス トークンを生成する必要があります。設定ページに移動して作成できます。

ここに画像の説明を入力

このアクセス トークンをコマンド ラインでパスワードとして使用します。

于 2014-08-28T13:53:35.850 に答える
48

エンド ツー エンドのソリューションには 3 つの手順が必要です。

  1. ゲルゴ・エルドシに敬意を表します。彼の答えはおおむね正しいです。Github がその設定ページを変更しただけです。2016 年後半の時点で、個人用アクセス トークン ページからアクセス トークンを生成する必要があります。

    ここに画像の説明を入力

    このアクセス トークンをコマンド ラインでパスワードとして使用します。

  2. ユーザー名をプロジェクトのリモート URL に含めることで、ユーザー名を永続化できます。これを行う方法の 1 つは、行を次の形式.git/configに変更するように編集することです。url

    url = https://YOUR_USERNAME_HERE@github.com/owner/repo.git

  3. これを 1 回だけ実行することで、パスワードを保持できます。

    $ git config credential.helper store

    そして、将来の git パスワードは ~/.git-credentials にプレーンテキストで、フォーマットを使用して保存されますhttps://user:PlaintextPassword@example.com

    パスワードをプレーンテキストで保存することは、通常、セキュリティ リスクと見なされます。ただし、この 2FA の場合、資格情報は実際のパスワードではなく、ランダムに生成された文字列です。したがって、パスフレーズのない ssh 秘密鍵使用するのと同じくらい安全です。注意: このマシンで 2FA を使用せずに別の git アカウントを使用した場合、それらの実際のパスワードもプレーンテキストで保存されることに注意してください。

PS: または、パスフレーズで保護された ssh 秘密鍵を使用して ssh ベースのログインを使用することもできます。これはより安全で便利ではありませんが、この回答の範囲外です。

于 2016-10-21T00:47:08.730 に答える
4

2021年更新

これが誰にとってもうまくいくかどうかはわかりませんが、私のgit バージョン2.27.0から最新バージョン (現在は2.30.0 ) に更新することで問題が解決しましたが、コマンド ラインで個人用アクセス トークンをパスワードとして使用しようとしても解決しませんでした。 t。

更新後、プッシュしようとすると、ダイアログまたはコマンド ラインで資格情報を入力する代わりに、ブラウザから GitHub にログインするように求められました。

于 2021-01-04T12:45:14.350 に答える
0

I was facing this problem on existing repo when I enabled 2FA(two factor authentication) for one of my private repos. I was able to solve it following below steps on my ubuntu 19.0 terminal:-

  1. Add your ssh key to github so that you dont need to use your password again,as now you have enabled 2FA.Visit github page to know how to do it easily.
  2. Once key is added, go to your terminal, and update the origin url

    git remote set-url origin git@github.com:<USERNAME>/<BRANCH-NAME>

Thats it.Hope it helps

于 2020-05-30T09:43:20.497 に答える