はじめに
友人がgithubにpushできない
というエラーが出た。
エラーを朗読して、わりと引っかかりやすいと思ったので備忘録としておく。
目次
前提
Ubuntu環境で実行。元のgitのバージョンは2.25.1でした。
エラー内容
前提としてgit pushをしたときに、
Password入力を求められた。
入力して出たエラーがこんな感じ↓
remote: Support for password authenticaion was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
ふむふむ、、、
githubの公式ドキュメント読めと言われてますなぁ。
https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
読んでみたところ、
2021の8月13日にPassword認証が削除されたと。
トークン作成してねって言われてるなぁ
試したこと
gitのバージョン変更をしたら解決するかな~という安直な考えで
バージョンをアップデートしました。
//参考より。
$ sudo add-apt-repository ppa:git-core/ppa
最新版が現在2.43.0なので、
そのバージョンがインストールされました。
もっかいgit cloneしてみた。
。。。同じエラーがでたぁ。。。
成功した例
公式ドキュメントの指定通りに設定すればgit cloneできるようになりました。
1. GitHubにログイン
2. 右上の自分のアイコンをクリック
3. 「Settings」をクリック
4. 左メニュー下部の「Developer settings」をクリック
5. 左メニューの「Personal access tokens」をクリック
6. 右上の「Generate new token」をクリックしてアクセストークンを作成➡Select scopes:repoと、
admin:repo_hookとdelete:repoは必須でチェックを入れる
7. vscodeのターミナルでIDとパスワードの代わりにアクセストークンを入力してログイン
https://qiita.com/NumLock7019/items/c867e01c5451dc7d06e3 より引用。
token の設定が終わった後に、
ubuntuで git clone するとPasswordの入力を求められるので、
tokenを入力すればcloneに成功できる。
(成功しても、sudo apt update と sudo apt upgradeを忘れないようにしましょう。。。)
追記
scopes:repoはステージングの状態コントロールや、
リポジトリ招待へのアクセス認証を行い、
admin:repo_hookはリポジトリフックの書き込み、読み取り権限の許可、
delete:repoはリポジトリの削除権限を許可するパラメータらしい。
私が間違っている場合や、説明が足りない可能性があるので、
後々アクセストークンの各パラメータについて投稿しようかと思う。
まとめ
- 今回のエラーはgithub側のバージョンアップによる認証方式の変更が原因。
- github側でトークンを出して、Passwordに入力すれば解決できる!
- 困ったら公式ドキュメントを読もう!
- バージョンごとの仕様変更はしっかりバージョンアップ記事(公式)を読もう!!
参考