Git♪パスワード認証廃止でSourcetreeからpushできない

2021年8月13日のパスワード認証廃止に伴い、「個人アクセストークン」に切り替えようとしましたがSousetreeからGitHubにpushできず苦労しました。そこで、解決法のメモを紹介したいと思います。OSはWindows10です。

GitHub側でトークンを作成する手順は簡単ですが、 Soucetree側の設定がうまくいかず時間をとられてしまいました。

なお、私はSoucetreeVer.3.4.5で実行しましたが、Ver.3.4.5は上記の状況とは別にクローンの時にフリーズするエラーがあるようですので、 Ver.3.4.5 はアンインストールして、Ver.3.4.4をインストールした方がよいと思います。

1.エラーの状況

エラーの状況は以下の通りです。

  • SoucetreeからGitHubにpushし、Select a credential helperで<no helper>を選択しても、エラーが発生してpushできない。バグ?設定ミス?
  • SoucetreeからGitHubにpushし、Select a credential helperでmanagerを選択した時に表示されるWindowにユーザー名、トークンを入力しても、エラーが発生してpushできない。
  • Soucetreeからターミナルを起動し、「git push origin master」を実行するとpushできる。

2.解決方法

他に解決方法があるのかもしれませんが、私は以下の手順で解決しました。

(1) トークンの作成

GitHub側でトークンを生成します。

  1. 右上のプロフィール画像 > Settingsをクリック
  2. 左サイドバーのDeveloper settingsをクリック
  3. 左サイドバーのPersonal access tokensをクリック
  4. Generate new token をクリック
  5. Select scopesでトークンの適用範囲をクリック(とりあえず、repoとuserだけをチェック)
  6. noteにトークンの説明を記載(自分用のメモ)
  7. トークンの有効期限を入力
  8. 下部のGenerate tokenをクリック
  9. トークンをクリップボードにコピー(ページを離れると2度と表示されない)

(2) Sourcetree側の設定

SourceTree側の設定は以下の通りです。

  1. ツール > オプション > 認証 > アカウントで追加ボタンをクリック
  2. ホスティングサービス:Githubを選択
  3. 優先するプロトコル:HTTPSを選択
  4. 認証:Basicを選択
  5. ユーザー名:ユーザー名を入力
  6. 「パスワードを再読込」をクリック
  7. パスワードに先ほどGitHubでコピーしたトークンを入力(ユーザー名は入力済みになっている)
  8. OKボタンを押す

(3) SourceTree側におけるpushの操作手順

以下の手順でpushを行います。上記「(2) Soucetree側の設定」を行わなければ以下の手順でmanagerを選択してもエラーが発生します。

  1. pushのボタンを押す
  2. Credential Helper SelectorのWindowが表示されるのでmanagerを選択する。(ここで<no helper>を選択するとエラーになる)
  3. Selectボタンをクリック
  4. Credential Helper SelectorのWindowがもう一度表示されるが、再びmanagerを選択し、Selectボタンをクリック

以上で無事にSourceTreeからpushすることができました。