こうこく
作 ▸
改 ▸

GitHubのリポジトリにアクセス時に「remote: Support for password authentication was removed on August 13, 2021.」エラー

放置してるリポジトリに触るたびに出てくるだろうから書いておく

エラー全文
remote: 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.
fatal: Authentication failed for 'https://github.com/napoporitataso/piyopiyo.git/'

2021年8月13日以降、GitHubのリポジトリにアクセスするには、ユーザ名とパスワードではなくアクセストークンが必要になった。

GitHubにログインして、右上の自分のアイコンをクリック → 「Settings」をクリック → 左メニュー下部の「Developer settings」をクリック → 左メニューの「Personal access tokens」をクリック → 右上の「Generate new token」をクリックしてアクセストークンを作成する。

アクセストークンを作成する時、「Select scopes」は少なくとも「repo」をチェックONにすること。また、作成したトークンの値を後でもう一度確認することはできないので、作成後はその場ですぐにコピーしてどこかにとっておくこと。

こうして作成したアクセストークンをパスワードの代わりに入力することで、GitHubのリポジトリにアクセスできるようになる。

URLに付与する方法

パスワードの代わりに入力する他では、以下のようにGitリポジトリのURLに付与して使うこともできる。

こんなかんじ
git clone https://${アクセストークン}@${ユーザー名}/${リポジトリ名}.git
具体例
git clone https://ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@github.com/napoporitataso/piyopiyo.git

ただしこの方法でcloneしたリポジトリは、リモートのURLにトークンが付与されたままになる。

なので例えばNode.jsの npm init を行って package.json を生成すると、トークンが付いたままのURLが repository としてセットされてしまうので注意。そのままコミットするとトークンが漏洩するので除去すること。

リモートのURLはコマンド git remote set-url origin {正しいURL} で修正できる。変更結果はコマンド git remote -v で確認できる。

この記事に何かあればこちらまで (非公開)