【GitHub】パスワード認証廃止を今更知ったので対応した話
こんにちは、コル(@bravecol)です。
Git操作でupstream取り込みを忘れそうなので
記事の執筆を兼ねてGithubを久々に稼働させようとしたところ
いつの間にか認証要件が変わっている!!!
となったので対応してみました。
githubのパスワード認証のサポートが終了したことを知る
今まで通りgit cloneすると
$ git clone https://github.com/username/reposname.git
Cloning into 'reposname'...
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/username/reposname.git/'
「2021年8月13日にパスワード認証サポートは終了したよ。パーソナルアクセストークン使ってね。もうちょい知りたかったらgithubのブログ見てね」とメッセージにあるのでちょいと閲覧してみました。
すると影響を受けるワークフローとしてめちゃ書いてありました。。。
Workflows affected
- Command line Git access
- Desktop applications using Git (GitHub Desktop is unaffected)
- Any apps/services that access Git repositories on GitHub.com directly using your password
パスワード使ったGitHubへのアクセスって最後に明記してますね。。いつの間にか変わっていたらしい。
GithubはPublicもPrivateも無制限で持てて、引き続き僕は使いそうなので一応対応していきます。
対応
調べてみるとGitHub公式から対応する場合の認証方法をご紹介してくれてました。
GitHub への認証方法について
今回は簡単さを重視して「SSH認証」ではなく下記の「HTTPS認証」で行きます。
GitHub CLI で認証する場合は、personal access token または Web ブラウザーを使って認証できます。 GitHub CLI を使用した認証の詳細については、「gh auth login」を参照してください。
GitHub CLI なしで認証する場合は、personal access token で認証する必要があります。 Git からパスワードの入力するダイアログが表示されたら、personal access token を入力します。 または、Git Credential Manager などの認証情報ヘルパーを使用できます。 より安全な認証方法を優先し、Git のパスワードベースの認証が削除されました。 詳しくは、「個人用アクセス トークンを管理する」を参照してください。 Git を使って GitHub で認証するたびに、資格情報ヘルパーでキャッシュしない限り、GitHub で認証するための資格情報を入力するように求められます。
GitHub への認証方法について
上記によるとHTTPS認証はGithub CLIを用いる方法を用いない方法があるそうですが今回は用いない方法で実施します。
アクセストークンの作成
順番にやっていきます。全体的な手法はGithub公式の「個人アクセストークンを使用する」をご覧ください。
まずはGitHubのアカウントでSettings→Developer settingsと進み「Personal access tokens」のタブへ移動します。
Generate new tokenより新しいトークンを作成する
トークンの名前と有効期限を設定しましょう。無期限もできますけど当然推奨はされません。
次にトークンの権限設定です。コマンドからcloneなどしたい場合はrepoにチェックを入れましょう。
最後にGenerate tokenを選択してトークン完成です。
注意点ですが、この次にトークンをコピーできる画面が表示されます。
そのトークンを忘れないようにメモしておきましょう。
僕は一回やらかしました^^;
HTTPSでCloneする
あとはHTTPSでCloneした際にPassword欄に先ほどのトークンを入れればClone完了です。
$ git clone https://github.com/username/repo.git
Username:
Password:
まとめ
以上、Githubのパスワード認証削除に対する対応例の一つです。
他にもSAML認証のシングルサインオンとかSSHでやる方法とかあるみたいです。
何はともあれ普段から使ってればいきなりこうはならないので、ぼちぼち趣味でも開発しようと思います。
多分、トークンの有効期限切れになったタイミングで僕はこの記事を見ることになるんだろうなぁと予測してます^^
同じことでお困りの方の助けになれば幸いです。ご一読ありがとうございました。