「git credential-osxkeychain」に保存されている資格情報をどのようにリセットしますか?


98

GitHubの手順に従ってアカウントを設定しましたが、クローンを作成することはできますが、リモートでプッシュすることはできません。

「git push」を実行すると、403エラーが発生します。正しいURLを持っている。「git credential-osxkeychain get」を実行して何が表示されているかを確認しましたが、これにより間違った認証情報が出力されました。

資格情報を要求したのは初めてだったと思います。これは別のアプリケーションが要求していると思い、間違ったものを入力しました。

リセットして、GitHubアカウントの正しいキーチェーンアイテムを使用する必要があります。

私はもう試した:

git credential-osxkeychain erase
git credential-osxkeychain set

プログラムはプロンプトを出しません。正しいことをしないと、セットは「悪い入力」と言うでしょう。「password=password」などを入れてみたのですが、「ゲット」すると古いものはまだゲット。

これらが.gitconfigureにないため、これらがどこに保存されているのかわかりません。さらに、それである可能性のある最近のキーチェーンアイテムはありません。(キーチェーンにいくつかのGitHubアカウントがあり、どれも使用していません。)




回答:


122

ターミナルから:

 $ git credential-osxkeychain erase
 host=github.com
 protocol=https
 <press return>

注:上記の「protocol = https」を入力した後、~~ RETURN ~~を2回押す必要があります


2
何らかの理由で、キーチェーンアプリ内でGit / GitHubの認証情報を見つけることができませんでしたが、これは機能しました。ありがとう!
ドナルド

4
これは私には明確ではなかったので、上の3行すべてを入力してから、もう一度Returnキーを押す必要があります。つまり、上の2/3行はコマンドからの出力ではなく、入力です。
フレデリク

この答えは私を助けました。どうもありがとうございました!
ケンフレーク

70

コマンドラインから消去する方法はわかりませんが、キーチェーンアクセスアプリから消去するのはかなり簡単です。[アプリケーション]-> [ユーティリティ]-> [キーチェーンアクセス]に移動し、「github.com」と入力します。アプリで無効なアイテムを削除するか、パスワードを更新できます。


4
これを読んでいる人がコマンドラインから実行する方法を見つけた場合は、知っておくと便利です。
funroll 2014年

1
@funrollコマンドラインツールはsecurityです。manページには、delete-internet-passwordコマンドがあると記載されています。
ベンザド2014年

更新をありがとう、それは誰かに役立つと確信しています。
funroll 2014年

これが最良のソリューションです
エリアスファゼル

どのキーチェーンから?
ブライアンブライス

28

解決策はこれであることが判明しました:

コマンドgit credential-osxkeychain最初の、私のキーチェーンの GitHubアカウントエントリを使用していました。これは、問題のプロジェクトにアクセスできたものではありませんでした。

キーチェーンアクセスでアカウントに触れて問題を解決し、日付が変更され(コメントを変更しただけだと思います)、最新のGitHubアカウントになり、最初のアカウントがcredential-osxkeychainに戻ったため、すべてが機能しました。

複数のGitHubアカウントをサポートするより良い形式がいいですが、ほとんどの人は1つのプライマリアカウントしか持っておらず、この問題に遭遇しない可能性があります。


2
これが同じホスト上の複数のユーザーに対してどのように機能するかはわかりませんが、sshをチェックして、~/.ssh/configOSXキーチェーンを使用する代わりにファイルを使用することができます。これは、異なるホスト(および思考アカウント)に複数のsshキーがある場合に使用されます。 nerderati.com/2011/03/17/...
jusopi

10

上記のように、git-credential-osxkeychainはパスワードをApple Keychainに保存します。

デフォルトでは、gitcredentialsはドメイン名のみを考慮します。Gitに完全なパスを考慮させる場合(たとえば、複数のGitHubアカウントがある場合)、http://git-scm.com/docs/gitcredentials.htmlで説明されているように、useHttpPath変数をtrueに設定します。この設定を変更すると、URLごとに認証情報が再度要求されることに注意してください。


7

Macでは、次のコマンドを使用します git credential-osxkeychain eraseます。

または、アプリケーションユーティリティキーチェーンアクセスのキーチェーンから手動で削除します。次に、github.comキーチェーンを削除します。次に、プッシュを使用します。キーチェーンへのアクセスを要求します。その後、拒否します。

新しいユーザー名とパスワードを要求し、追加してからファイルをプッシュします。

git pushこのエラーを見つけた後。次に、大文字の問題を使用します。

remote:user1 / file.gitへのアクセス権がuser2に拒否されました(以前は存在していたuser)。致命的: ' https://github.com/xxxxxxxxxxxx/ ' にアクセスできません:要求されたURLがエラーを返しました:403



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