プログラミング

【GitHub】authentication failedの解決方法【2段階認証】

【GitHub】authentication failedの解決方法【2段階認証】

GitHubからソースコードをgit cloneしようとしたところ、突如現れたエラー。

 command
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/donachiki1017/StopTheRot.git/

gitの設定(config)なんて変えた記憶はないんだけど、なぜだ?

という現象の原因と解決策です。

原因

GitHubへアクセスするためには認証する必要がありますが、2021/8/13以降にポリシーが変わり、従来のパスワード認証によるHTTPSアクセスができなくなりました。

以降、GitHubへアクセスするためには以下のいずれかの方法が必須になりました。

  • 2 要素認証を使用したユーザ名とパスワード
  • 個人アクセストークン
  • SSH キー

[GitHub への認証方法について - GitHub Docs]

今回は個人用の開発用途で、GitHubに対してリポジトリ操作ができればOKなので、個人アクセストークン(PAT: Private Access Token)を用いる方法で解決しました。

解決方法【図解】

公式の手順に従って個人アクセストークン(PAT: Private Access Token)を作り、パスワードの代わりに作成したトークンを指定すればOKです。

[個人アクセストークンを使用する - GitHub Docs]

Private Access Tokenを作ってgit操作する手順

  1. GitHubでPrivate Access Tokenを作る
  2. git clone等の操作時に、PasswordにPrivate Access Tokenを指定する

環境

  • macOS Big Sur バージョン 11.5.2
  • git version 2.30.1

図はMacのものを使っていますが、Windows(Git for Windows)でも同じです。

GitHubでPrivate Access Tokenを作る

1. GitHubへアクセスします。

2. 右上のProfile > Settingsをクリックします。

GitHub - Private Access Tokenを作る手順

3. Developer Settingsを選択

GitHub - Private Access Tokenを作る手順

4. Personal access tokensを選択

GitHub - Private Access Tokenを作る手順

5. Generate new tokenを選択

GitHub - Private Access Tokenを作る手順

トークン生成画面では以下を設定します。

Note何に対するトークンかわかるような識別子。トークンによってアクセス権限や設定できることを変えることができるので、後から見てわかるように。特に事情がなければmy access tokenとかでも。
Expirationトークンの有効期限。
Select scopesトークンを使ってできる権限の範囲。リポジトリにアクセスする用途であればrepoにチェックを入れればOK。
GitHub - Private Access Tokenを作る手順

6. Generate tokenをクリック

GitHub - Private Access Tokenを作る手順

すると、Personal access tokens画面に、何やら暗号が表示されます。これがPrivate Access Tokenです。

これを忘れずにコピーします。

※再表示はできないため、コピーを忘れてブラウザを閉じてしまうと再度生成することになるので注意

Gitのパスワードにトークンを設定する

ターミナルで再度git操作をします。

例えばgit cloneをすると、UsernameとPasswordを聞かれるようになるはずです。

ここのパスワードで先ほど生成したPrivate Access Tokenを指定します。

 command
git clone https://xxxxx@github.com
Username for 'https://github.com': GitHubアカウントのユーザ名
Password for 'https://xxxxx@github.com':  先ほど生成したトークンを入力

めでたしめでたし。

現在の開発の中でGit, GitHubは必須のスキルになりつつありますよね。使えないと開発に支障が出るのですが、逆に使いこなせるようになるとDevOpsエンジニアとしてチームを引っ張れるようなポジションで活躍することもできます。

僕は本を読みながらトライ&エラーでスキルを身につけました。特に初心者の域を脱してから読むことで知識が習熟させることができました。目につくところに置いて、たまに読み返してみると良いですね。

¥3,247 (2022/08/09 23:21時点 | Amazon調べ)

また今ではUdemyを使っての学習もオススメです。動画教材なので通勤や移動中の隙間時間にながら学習するだけでも理解が深まりますよ。

 ▶︎関連記事:Udemy 『米国AI開発者がやさしく教えるGit入門講座』の感想

-プログラミング
-