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をインストールした方がよいと思います。

なお、SoucetreeはGitのバージョンとの相性で不安定な動作をすることが多いので、それも確認してみて下さい。

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側でトークンを生成します。なお、以下の操作手順は2023.6.13時点のGitHubの操作方法に更新しました。

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

(2) Sourcetree側の設定

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

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

(3) トークンの更新 ※参考までに

アカウントの新規作成は上記の通りですが、同じアカウントでトークンを更新する場合には以下の手順で設定します。同じような手順ですので、参考までに。

  1. ツール > オプション > 認証 >
  2. 使用するカウントを選択
  3. 編集をクリック
  4. ホスティングサービス:Githubが選択されていることを確認
  5. 優先するプロトコル:HTTPSが選択されていることを確認
  6. 認証:Basicが選択されていることを確認
  7. 「パスワードを再読込」をクリック
  8. パスワードに先ほどGitHubでコピーしたトークンを入力(ユーザー名は入力済みになっている)
  9. 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することができました。