0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SourceTreeでpush時「fatal: Authentication failed for ~」と表示された場合の対応

Posted at

下記エラーが表示されクローンやプッシュ等ができない場合の備忘録

remote: Invalid username or token. Password authentication is not supported for Git operations.
fatal: Authentication failed for 'https://github.com/USERNAME/REPOSITORY.git/'

→2021年8月13日以降、GitHubはパスワード認証を廃止した。そのため、以下の認証方法のいずれかを使用する必要がある。
Personal Access Token(PAT)
SSHキー
OAuth

▼解決手順

事前準備:古い認証情報をクリア

  1. Git設定から認証ヘルパーを削除
git config --global --unset credential.helper
  1. macOSキーチェーンから古い認証情報を削除
security delete-internet-password -s github.com

[ターミナル上、下記のような状態となる]

% git config --global --unset credential.helper
% security delete-internet-password -s github.com

keychain: "/Users/hoge/Library/Keychains/login.keychain-db"
version: 512
class: "inet"
attributes:
~以下一部省略~
password has been deleted.

保存されていた古いパスワード情報が削除される。

■本対策:Personal Access Tokenの設定

1、GitHubにログイン

2、右上のプロフィールアイコン → Settings

3、左メニューの一番下 → Developer settings

4、Personal access tokens → Tokens (classic)

5、Generate new token → Generate new token (classic)

6、設定項目:

・Note: SourceTree用 など分かりやすい名前

・Expiration: 90日または任意の期間

・Scopes: ☑️ repo(リポジトリ全体のアクセス権)にチェック

7、Generate tokenをクリック

8、生成されたトークンをコピー(この画面を離れると二度と表示されない)
※ここで一度下記に貼り付けておくと間違いない

ステップ2:リポジトリのURLにトークンを設定
プロジェクトディレクトリに移動して、以下のコマンドを実行:

プロジェクトフォルダに移動

cd /path/to/your/project

URLにトークンを含めて設定(1行で実行)

git remote set-url origin https://USERNAME:TOKEN@github.com/USERNAME/REPOSITORY.git

※もしここで、ユーザーAが作成したリモートリポジトリ対して、ユーザーBがプッシュ時に遭遇したエラーを解消する場合は、下記の通りとなる。
例:

git remote set-url origin https://USERNAME-B:USERNAME-B-TOKEN@github.com/USERNAMEA/REPOSITORY.git

※上記はユーザーBの名前と、ユーザーBが発行したアクセストークンでユーザーAのリモートリポジトリにアクセスできるようにするための構文

ステップ3:設定の確認
リモートURLの確認

git remote -v

以下のような表示になればOK:

origin  https://USERNAME:TOKEN@github.com/USERNAME/REPOSITORY.git (fetch)
origin  https://USERNAME:TOKEN@github.com/USERNAME/REPOSITORY.git (push)

ステップ4:プッシュのテスト(この時点でsourcetreeからでもプッシュはできる)

git push origin main

成功すると以下のような表示:

Enumerating objects: xxxxx, done.
Counting objects: 100% (xxxxx/xxxxx), done.
...
To https://github.com/USERNAME/REPOSITORY.git
   a8b6f43..4f3c030  main -> main

■参考記事
https://note.com/keitaro_aigc/n/ne1dce1e1ab20

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?