GitHub認証がhttpsで失敗し、間違ったメールアドレスが返される


128

ユーザー名とパスワードを要求するコマンドラインから(SSHではなくhttpsを介して)GitHubでプッシュまたはその他のアクションを開始すると、失敗するだけでなく、失敗すると返されます

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

@github.com住所がありません。パスワードとユーザー名は正しいです。

SSHに切り替えてキーを使用できることはわかっていますが、認証がhttpsで失敗する理由にはなりません。


ドキュメントgit-scm.com/book/en/…git-config-リポジトリまたはグローバルオプションの取得と設定git-scm.com/docs/git-config
John Smith

回答:


171

GitHubのサポートにより、問題の根本がすぐに特定されました。2要素認証です。

httpsでシェルを介してGitHubを使用するには、OAuthトークンを作成します。ページに記載されているように、キーチェーンからユーザー名とパスワードの資格情報を削除する必要がありosx-keychainましたが、適切な場所にあると、トークンはパスワードとして保存され、httpsを介した場合と同じように機能します。


4
+1。また、暗号化されたnetrcの中にPAT(パーソナルアクセストークン)を使用することができます。stackoverflow.com/a/18607931/6309
VonC

PATとOAuthの違いは何ですか?
lindhe 2014年

@lindhe OAuthトークンはトークンの一種です。この場合、PATはOAauthトークンです。
ケリージョーンズ

22

@github.com住所がありません

必要はありません。これ@は、ユーザー名:パスワードとドメインの間の区切り文字です。
メールアドレスではありません。

完全なGitHub https URLは次のようになります。

https://username:password@github.com/username/reponame.git

パスワードがない場合(コマンドラインで要求される)、次のようになります。

https://username@github.com/username/reponame.git

ただし、username@github.comこれも電子メールアドレスではなく、資格情報の最初の部分です。

あなたのケースを確認してくださいusernamereponame正しい:それは大文字と小文字が区別されます

資格情報を明確にURLに入れたくない場合は、資格情報を.netrc.gpg(または_netrc.gpgWindowsで)保存して暗号化できます。
使用時にパスワード入力をスキップする方法はありますかhttps://github」を参照してください。


パスワードを省略して、毎回パスワードを入力することもできます。その場合はそうなりますhttps://username@github.com/username/reponame.git
Mark Hildreth

ああ、それは理にかなっています。ありがとうございました。大文字と小文字の区別について知っていて、提供しているユーザー名とパスワードが正しいことを確信しています。(彼らはウェブサイトにサインインするためにうまく働きます。)a
ele

2
@eleはい、でもパスワードに特殊文字(など! * ' ( ) ; : @ & = + $ , / ? # [ ])が含まれていますか?それらは「パーセントエンコード」する必要があります(en.wikipedia.org/wiki/Percent-encoding)。
VonC 2014年

パスワードは英数字です。次のマシンで 'git remote -v'が何を表示するかを確認しますが、次にGitHubサポートに連絡する必要があるようです。
ele

@eleは最初に.netrcアプローチを試してください(テストのためだけに暗号化すらしません)。それでもうまくいかない場合、GitHubサポートは次のステップです。
VonC 2014年

21
  • Credential Manager => Windows Managerに移動します
  • tfsに関連するすべてを削除します
  • 次に、「一般的な資格情報追加」をクリックして、次の値を入力します

    (1)インターネットまたはネットワークアドレス:git:https://tfs.donamain name(2)ユーザー名:ユーザー名(3)パスワード:パスワード

    これはそれを修正する必要があります


ワオ。間違ったパスワードを入力した場合に、間違ったパスワードを保存する方法が気に入っています。その後、手動で更新または削除する必要があります
Kolob Canyon

10

以前に別の資格情報を保存した場合、Windowsで発生する可能性があります。資格情報マネージャーに移動し、保存されているgithub資格情報を削除します


1
Windows Credential Managerでパスワードを直接編集して、新しいパスワードに変更することもできます。
Spenhouet 2018


8

githubの双方向認証を有効にしたときも、同じことが起こりました。私が解決したこと:

  • 個人用アクセストークンを取得します。これは、まだ利用可能でない場合は、確認および生成する必要があります。このリンク:https : //github.com/settings/tokens
  • ローカルに移動してフォルダーを削除し、githubからブランチを再クローンします。
  • さて、前に試していたコマンドを試してください:git pull origin master
  • ユーザー名とパスワードを入力して、生成されたトークンを貼り付け、そのトークンをどこかに保存することを忘れないでください。そうすれば、必要に応じて再利用できます。

これを行うと、問題が解決します。


良いコールアウト-これはMacで起こっていました=> PATを再生成する必要がありました
SliverNinja-MSFT

以前に生成されたトークンに存在しない権限が必要な場合は、トークンを生成する必要があります。また、以前のトークンを紛失した場合は、この新しいトークンを生成して、元のgitパスワードの代わりに認証用のパスワードとして使用できます。
Mohd Belal

5

これが他の人にも役立つ場合に備えて、Macアプリにサインインし、コマンドラインは正常に機能しましたが、2FAをオンにしたため、コマンドがエラーを返していました。私はアプリからサインアウトする必要があり、その後、エレの回答に従って、コマンドで個人用アクセストークンを使用できました

うまくいけば、それは誰かを助けます!


-2

Windowsでは、ウイルス対策またはWindowsファイアウォールによって警告なしにブロックされる可能性があります。これらのサービスを一時的にオフにして、リモートオリジンからプッシュ/プルします。

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