MENU
CLOSE
APPSYSTEM Edit : 2021.08.27 Update : 2023.06.14

SourcetreeでGithubにコミットしようとしたときに403エラーがでた時の対処法

2023/01/17 追記
今まではこの記事の下記の方法で対応していたのですが、2022年途中くらいから私の環境では対応ができなくなりました。
(個人の環境の問題なのか、根本的にやり方が変更になったのかが現状わかりません。)
そこで、私は苦渋の決断の末、Github Desktopというクライアントに乗り換えました。

▶ GitHub Desktop

個人的には、Sourcetreeより直感的で分かり易く使いやすいと感じています。
下記方法を試してみてうまくいかない場合は、GitHub Desktopも検討してみるのも良いかもしれません..!

————

Sourcetreeでは、2021年8月13日にGitHubのパスワードが廃止されたようで、コミットまでは出来るのですが、プッシュやプルが出来ないという事態に陥りました。
私の環境では、こんな感じのエラーが出ました。

Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.


いくつか参考にした記事があるのですが、全く同じようにやってもうまくいかず、合わせ技でエラーを解消できたので、その方法をメモします。

参考にした記事

1.【SourceTree】GitHubのパスワード廃止対応(できるだけ簡単に)
2.GitHubのパスワード認証廃止でSourcetreeで403エラーが発生して解決策がわからなかったのでまとめておく

こちらのいずれかの記事のみでも解決できるかもしれません。それでも解決できない方は、このあと記載する上記記事の合わせ技を試してみてください。

やり方

【GitHub上での作業】

まず、エラーにも記載のあるpersonal access token(パーソナルアクセストークン)というものを作る必要があるので、下記URLを参考にトークンを作成します。

個人アクセストークンを使用する ▷
※手順に従ってトークンを作成したら、必ずトークンをメモします。

【SourceTree上での作業】

1.ツール > オプション > 「認証」タブを開きます。
そこに、元々Githubのアカウントが登録されていたので、そのアカウントをクリックし、「削除」で消しました。

2.アカウントの箇所に「追加」があるのでクリックします。
以下の設定にして、「OAuthトークンを再読み込み」をクリックします。
——-
[Host]
ホスティングサービス:GitHub
優先するプロトコル:HTTPS
[Credentioals]
認証:OAuth
——-



3.Githubのログインページが立ち上がるので、自分のGithubのIDとパスワードを入力します。
4.そうすると、先ほどの画面にユーザ名と、「認証成功」の緑のチェックが入りますので、このアカウントを「デフォルトに設定」します。


5.SourceTreeの最初に開いた状態の画面に戻り、「設定」画面を開きます。


6.[編集]を開き、「URL/パス」の書き換えと、「Remote Account」がGeneric Accountになっている場合は、さきほどアカウント追加したアカウントに変更します。


「URL/パス」の変更方法は、下記です。「https://」と「github.com…」の間に、先ほどGithub側の設定で取得し、メモしておいたアクセストークンを貼りつけ、末尾に@をつけます。

元:

https://github.com/[ユーザ名]/[リポジトリ名].git


変更後:

https://[アクセストークン]@github.com/[ユーザ名]/[リポジトリ名].git




ここまでの設定をすべて終えたら、プルやプッシュを再度試します。
私はこの方法で解決することができましたので、他の参考サイトの方法で失敗した方は是非やってみてください!

Miki Kohinata

就活時代、企業で働きたくないがゆえに将来独立することを決めエンジニアの道へ。IT企業で藤本と運命的に出会いKOHIMOTO設立。目指すのは人の心に寄り添えるエンジニア。人生のテーマソングはWeekend by 5lack。