Gitプッシュにより「認証失敗」が発生する


705

私はしばらくのGithubを使用していると私は罰金だったgit addgit commitgit pushこれまでのところ何の問題もなく。突然、次のようなエラーが発生します。

致命的:認証に失敗しました

ターミナルでは、リポジトリのクローンgit addを作成し、ファイルを操作してから、ファイルをコミットログに追加しました。そうするとgit commit、正常に機能しました。最後に、git pushユーザー名とパスワードを要求します。私はそれらを正しく入れました、そしてこれをするたびに、それは同じエラーを言います。

誰もがこの問題の原因が何であるか、そして私がそれをどのように修正できるかについて何か考えを持っていますか?

の内容は次の.git/configとおりです。

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = http://www.github.com/######/Random-Python-Tests
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        name = #####
        email = ############

githubのユーザー名と.git / configの内容は何ですか?
mnagel 2013

質問に追加してください。コメントは長いテキストには対応してい
ません

申し訳ありません、私は癖からコメントを始め、それを変更しました。
zkirkland 2013

URLが正しくありません。それではhttps://なく、から始めるべきだと思いますhttp://
John Szakmeister 2013

httpsに変更されました...機能しませんでした。
zkirkland 2013

回答:


1203

Githubアカウントで2要素認証を有効にした場合、アカウントのパスワードを使用してHTTPS経由でプッシュすることはできません。代わりに、個人用アクセストークンを生成する必要があります。これは、Githubアカウントのアプリケーション設定で行うことができます。このトークンをパスワードとして使用すると、HTTPS経由でリモートリポジトリにプッシュできるようになります。通常どおりユーザー名を使用します。

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

httpsに設定されている場合は、リポジトリのオリジンを更新する必要がある場合もあります。

git remote -v 
git remote remove origin 
git remote add origin git@github.com:user/repo.git  

5
確かに。+1。ここにPATを示しますstackoverflow.com/a/19223896/6309とそこでのプロセスの詳細:stackoverflow.com/a/18607931/6309
VonC

3
2FAを有効にした後で通常のGit操作が機能するように、RSAキーを新たに生成する必要がありました。
R11G

5
ありがとうございました!ただ指摘しておくと、このエラーがあり、これが役立ちました。個人用アクセストークンを作成したら、それをコピーし、リポジトリをプッシュするときに、ユーザー名とパスワードを要求します。アクセストークンをパスワードに貼り付けます
pourmesomecode

87
git remote add origin https://username:access-token@github.com/username/repo.git個人のアクセストークンを保存することもできます。
mailmindlin 2016

2
私にとっては、GitHubアカウントのローカルマシンからSSH認証を有効にして、ssh gitリモートアドレスに切り替えるだけで済みました。help.github.com/articles/changing-a-remote-s-url
user5359531

603

保存した資格情報を編集または削除するには、次の手順を試してください。

  1. スタートをクリック
  2. タイプ:資格情報マネージャー(Windows 10では、これは「スタート->設定」の下にあります。次に「資格情報マネージャー」を検索します)
  3. 参照Windows Credentials Managerショートカットをし、アプリケーションを開くために、それをダブルクリックします。
  4. アプリが開いたら、Windows Credentialsタブをクリックします。
  5. 削除/更新する認証情報を見つけます。「git:」で始まり、「ada:」で始まる場合があります。
  6. 資格情報エントリをクリックすると、エントリの詳細ビューが開きます。
  7. 必要に応じて[編集]または[削除]をクリックし、確認します。
  8. 洗浄、すすぎ、必要に応じて繰り返します。

ここに画像の説明を入力してください


2
私の場合、それは「Windows Credentials」ではなく「Generic Credentials」にあります。資格情報を削除してトリックを実行します。
Toni Gamez

8
上記のウィンドウは(windows + R)-> "control / name Microsoft.CredentialManager"
Sufiyan Ansari

認証情報は存在する可能性がありますが、その前に「git:」がありません。それはうまくいきません。'git:'で開始する必要があります
Marques

1
私の雇用主はWindows認証をGit Hubに設定したため、Windows資格情報を変更するたびに、ソース管理のために更新する必要がありました。あなたの答えはうまくいきました。
shary.sharath

1
素晴らしい答え。私たちは内部のBitBucketリポジトリを維持しています。そこでは、アカウントの資格情報のそれぞれが組織に対して認証されています。最近、私のすべてのリポジトリがコード変更のプッシュに使用できなくなりました。資格情報はケースごとに変更できましたが、すべてのプロジェクトで実際に変更することは望んでいませんでした。@Pradeepのアプローチにより、根本的な原因を解決することができました。これは単なるパスワード変更ではありませんでした。私たちの組織は最近内部ドメインの名前を変更したので、資格情報を一元的に編集することで、すべてのプロジェクトを修正することができました。
Michael M

79

これは私にとってはうまくいきました、そしてそれは私の資格も覚えています:

  1. gitbashを実行する

  2. repoディレクトリをポイントします

  3. 走る git config --global credential.helper wincred


18
それが何をするのかを知るために私にしばらく時間をかけました-それはWindowsのコントロールパネルの資格情報マネージャーを使用します。使用を停止するには:git config –global credential.helper unset ソース、およびこの回答の詳細。
Ian W

7
@IanW意味git config --global --unset credential.helperですか?それがGit Bashで私にとってうまくいったことです。
Ellen Spertus

1
このコマンドに注意してください。このコマンドを実行すると、資格情報ヘルパーへの実際のパスが単純に "wincred"に置き換えられますが、これは明らかに必要なものではありません。
amarax 2017年

2
このコマンドを実行して、自分が望んでいたものではないことを確認しましたgit config --global --unset credential.helper。解除する適切な方法は、です。最終的に、で正しい設定を復元しましたgit config credential.helper store
Omar

これは私を助けます!ありがとう!
Jefsama

70

gitアカウントのパスワードを最近変更した可能性がgit pushあり-uます

git push -u origin branch_name_that_you_want_to_push

上記のコマンドを実行した後、更新されたパスワードを提供するように求められます

お役に立てば幸いです


これは機能しますが、私の環境で必要なのhttps
BMW

1
確かにほとんどの答えよりもはるかに簡単です。(そして、パスワードを変更することが、認証エラーが発生する最も一般的な理由です;
Michel

既存のクローンでこれが発生している場合-実行するだけgit push -u
Ajay Chebbi

64

まず、適切なURLを使用していることを確認します。

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

次に、それが以前に機能していて、ユーザー名を要求していなかった場合は$HOME/.netrcここで説明するように、資格情報(ログイン/パスワード)をファイルに保存したことが原因であると考えられます。これらの設定を再確認し、プロキシがある場合は、プロキシが変更されていないことを確認してください。

それでも機能しない場合は、ssh urlに切り替えることができます。

git remote set-url origin git@github.com:zkirkland/Random-Python-Tests.git

ただし、これは、アカウント設定でssh公開鍵を公開したことを意味します


9
HTTPSからSSHに切り替えると問題が解決しました。
leymannx 2015年

3
GHアカウントで2要素認証を有効にし、リモートURLをHTTPSからSSHに切り替えると、「認証失敗」の問題が解決しました。理にかなっています。ありがとう!
Walter Roman

55

gitサービスアカウント(Git)のログインまたはパスワードを変更すると発生します。Windows Credentials Managerでも変更する必要があります。Windows検索メニューで「資格情報マネージャー」と入力して開きます。

Windows Credentials Manager-> Windows CredentialとGeneric Credentialsで gitパスワードを編集します。


4
これにより、GitLabを使用する際に助かりました(他にほとんど何も役に立たなかった場合)。ありがとう!
ジョンハンフリーズ-

2
このWindows資格情報マネージャーについて聞いたことがありませんでした。ありがとうございます。
Sam

1
新しいファイルをリモートリポジトリにプッシュしているときに、GitがユーザーIDとパスワードの入力を求めたときに、間違った認証情報を入力しました。もう一度pushコマンドを実行すると、gitは資格情報を要求しませんでしたが、認証失敗エラーのみをスローしていました。この回答を読んだ後、Gitは認証情報マネージャーに保存されている認証情報を使用し、それがリモートリポジトリにプッシュするたびにgitがパスワードの入力を求めない理由であることに気付きました。資格情報マネージャーでgitパスワードを削除した後、gitは再びユーザーIDとパスワードの入力を求めました。
イェンナ

41

基本的に私の資格は失効し、私は上記の問題に直面していました。

次の2つのコマンドが私を助けました:

git config --global --unset credential.helper

git config credential.helper store

次にプッシュしようとすると、資格情報の入力を求められます。

ユーザー名とパスワードの保護されたストレージと保護されていないストレージの詳細については、以下のガイドラインに従ってください。

https://git-scm.com/docs/git-credential-store

https://git-scm.com/docs/git-credential-cache


これは、Githubでパスワードを変更し、ローカルで資格情報を変更していなかった後に機能しました。
スコット

33

正しいパスワードとユーザー名を入力したときに認証エラーの問題が見つかった場合は、gitの問題です。マシンにGitをインストールするときにこの問題を解決するには、Git資格情報マネージャーの有効化をオフにしますここに画像の説明を入力してください


1
これで問題が解決しました
user1929819

私も修正しました。どうもありがとう!
ブライアンエドワーズ

このタイプの解決策は見つかりません。gitを再インストールしました
Hoque MD Zahidul

私の問題も修正しました(gitがインストールされましたが、これを
チェックせ

1
「ネイティブのWindowsセキュアチャネルライブラリを使用する」もチェックする必要がありました。デフォルトではチェックされていません。
doptrois

25

どういうわけか、GitHubはURLにサブドメインwwwがないことを期待していると思います。使用するとき(例)

git remote set-url origin https://www.github.com/name/repo.git

次のメッセージが表示されます。

remote: Anonymous access to name/repo.git denied
fatal: Authentication failed for https://www.github.com/name/repo.git

ただし、使用する場合

git remote set-url origin https://github.com/name/repo.git

それは完全にうまく働きます。私にはあまり意味がありません...しかし、GitHubリポジトリのリモートURLにwwwを入れないことを覚えていると思います。

また、GitHubリポジトリのWebページで提供されているクローンURLにwwwが含まれていないことにも注意してください。


4
「github.com」に「www」を付けなくても機能します。それが重要なので、Githubはサイトを修正して、「www」を使用してクローンを作成できないようにする必要があります。
John Nagle、2014年

1
ありがとう:)私のURLには.gitがありませんでした。このコメントで私はそれを見て理解するようになりました。

19

こんにちは、私は同じエラーが発生しました。このページで説明されているすべての解決策を試しましたが、機能しませんでした。最後に、私は解決策を見つけたので、それを投稿することを考えました。どこか間違っている場合は修正してください。このようなエラーは、システムパスワードが最近いつでも変更された場合に発生します。古いパスワードから検証を試みます。したがって、次の手順に従います。

  1. コントロールパネルに移動
  2. ユーザーアカウントをクリックします
  3. 資格情報マネージャーの下
  4. Windows資格情報の管理に移動します
  5. 一般的な資格情報に移動
  6. gitサーバータブを展開します
  7. ボールトから削除をクリックします

    • また、[編集]をクリックして、ここに保存されているパスワードを直接変更することもできます。

10

Windowsのパスワードの有効期限が切れて変更された後、「$ git fetch fatal: 'http:// ....の認証に失敗しました」に遭遇しました。複数のフェッチ、再起動、およびWindows資格情報マネージャーを使用したgitの再インストールでさえ、役に立ちませんでした。

驚いたことに、コメントのどこかに正しい答えがありますが、答えにはありません(そして、それらのいくつかは本当に奇妙です!)。コントロールパネル-> Credential Manager / Windows Credentialsに移動し、gitのパスワードを更新する必要があります:http:// yourrepoaddress


9

私はこのエラーを取得するために何をしたか本当にわかりませんが、次のようにします:

git remote set-url origin https://...

うまくいきませんでした。しかしながら:

git remote set-url origin git@bitbucket.org:user/repo

どういうわけか働いた。


3
httpsからsshに切り替えました
James Wierzba、2015

それも私のために働きます。これは魔法ではありません。それは、httpsアクセス(ユーザー/パス+ MFA)では取得されないsshアクセスの構成(公開キーが構成されている)を格納しているためです。
Daniel Dubovski

8

私も同じ問題を抱えていました。私はそのようにURLを設定しました:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

また、このエントリを構成ファイルから削除しました:askpass = /bin/echo。次に、「git push」がユーザー名とパスワードを要求し、今回は機能しました。


このエントリを構成ファイルから削除する必要はありませんでしたaskpass = /bin/echo
Darius Miliauskas

5

私の場合、最近Windowsのパスワードを変更し、git関連のアクション(プル、プッシュ、フェッチなど)用にSSHキーを構成しました。「致命的:認証に失敗しました」エラーが発生した後、Windowsでパスワードを更新しましたgit:...で始まるすべてのアイテムの資格情報マネージャー(コントロールパネル\ユーザーアカウント\資格情報マネージャー)。今回は再試行されました。



3

Githubアカウントで2要素認証を有効にしている場合は、GitHubアカウントにサインインし、https//github.com/settings/tokens/new にアクセスして、新しいアクセストークンを生成し、そのトークンをコピーして貼り付けます。端末での認証用のパスワード。


2

Windowsを使用していて、ドメインユーザーがリポジトリユーザー(TFS)として機能しているWindowsサーバーにプッシュしようとしている場合はhttp:\\tfs、IEでTFS URL(つまり)にアクセスしてみてください。ドメインアカウントの資格情報を入力して、ページを表示します。

注意はインターネットエクスプローラのみを使用してください!他のブラウザはシステムの資格情報を変更しません。

次にgit bashに移動し、次のようにリポジトリのリモートユーザーを変更します。

git config user.name "domainName\userName"

これで、プッシュできるようになりました。


1

私にとっては、Github.comでパスワードを変更したことを忘れており、シェル認証のキーチェーンがその新しいパスワードに更新されることはありませんでした。キーチェーンからすべてのgitを削除してからgitリクエストを再実行すると問題が解決し、新しいパスワードの入力を再度求められました。


1

ここで問題を解決するために、問題を修正したのは、最初のプロンプトをキャンセルしただけで、sshが私のbitbucketアカウントで開き、そこでパスワードを入力したところ、すべてが期待どおりに機能しました。


1

Windowsでも同じ問題に直面していました。ほとんどの場合、複数のgitアカウントを使用しているため、通常はこの問題に直面しています。Windowsを使用している場合は、管理者としてターミナルを開き、コマンドを再実行してください。管理者アクセス権があることを確認してください。


1

GitにリンクされたBitbucketに追加していたため、保存されたキーを削除する必要がありました。これが致命的なエラーの原因でした。

解決するには、コマンドプロンプトを開いて実行しました

 rundll32.exe keymgr.dll, KRShowKeyMgr

サインインを担当していたキーを削除し、次にファイルをリポジトリにプッシュしたときに、資格情報の入力を求められ、正しいものを入力したため、プッシュは成功しました。


0

私もエラーに遭遇しました(それが私がここに着陸した理由です)が、どの提案もうまくいきませんでした。初めてローカルGitをデプロイして紺碧にしようとしたのはこれが初めてでした。このエラーが発生したとき、数回試行した後、(Azureのリンクをクリックして)資格情報をリセットしました。問題は、この時点でユーザー名が既に使用されていることを示しているため、ユーザー名を別の名前に変更したことです。最後に、ローカルドライブの.gitフォルダーを手動で削除し、問題なく再デプロイしました。


0

問題の説明:「git fatal authentication failed」。私はbitbucketを使用しています。

解決策: ユーザーをbitbucketのアクセス管理の使用から削除し、同じユーザーを追加しました。.gitconfigファイルはシンプルです

[user]
    name = BlaBla
    email = blabla@gmail.com

[push]
    default = simple

0

問題が蔓延している場合は正しい資格情報を使用

あなたがandroidstudio 2.1ベータを使用していて、そのバグ、ベータ2(3MBのアップデートファイル)にアップグレードした場合、これは私のために働いた


0

プッシュするための書き込み権限があることを確認してください。

read ***write*** admin 

0

sshキーが現在のsshセッションに追加されていることを確認してください。

  1. の出力をcat ~/.ssh/id_rsa.pubSSHおよびGPGキーの下のGitHub設定にコピーします。

  2. 現在のsshセッションを更新します ssh-add ~/.ssh/id_rsa.pub

opensshがインストールされたWindows Powershellを使用しています。


0

Android Studioカナリアビルド3.1以降では、Android Studio gitツールを使用している場合は、以下を使用できます。

  • Android Studioをクリックします
  • [設定]をクリックします...
  • VersionControlでGO-> Github
  • ここで認証タイプをパスワードに変更します
  • この手順では、ログインとパスワードを入力する必要があります。ログインとしてgithubユーザー名を、パスワードとしてgithubパスワードを入力します。
  • テストボタンをクリックします。

接続が成功した場合は、完了し、android studio github UIクライアントを使用できます。


0

sshを使用していて、httpsでクローンを作成している場合、これは機能しません。sshでクローンしてから、pushとpullが期待どおりに機能するはずです。


0

これが接線的に役立つ場合は、この質問がgitのhttp認証問題のトップヒットになっているためです。WindowsCredential Managerは私のパスワードを正しく保存し、Git LFSを使用していたため、通常のsshの代わりにhttp URL設定しました:/ /

私の問題は、会社のパスワードポリシーがアカウントのパスワード変更を強制したことですが、保存された資格情報を更新したことはありません(常にsshキーを使用するため)。

Wincred GUIで直接パスワードを更新するだけでうまくいきましたgit:https://<your-url>。エントリを探してください。


0

これは、Gitlabからログインする前に「Two Factor Authentication」を強制した後に発生しました。id_rsa.pub内のテキストをGitlabに貼り付け、ターミナルを使用してVSコードでリポジトリを再導入する必要がありました。

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