UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【GitHub】認証方法が変わってた

深夜に自社サイトをスマホでみてみたら障害をみつけてしまい、急いでソースを確認しようとGitHubからソースをpullしようとしたらエラーがでてpullができなかった

$ git pull origin master
remote: Password authentication is temporarily disabled as part of a brownout. 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: unable to access 'https://github.com/xxxxx/my-project.git/': The requested URL returned error: 403

こんなときに、、、と思ってエラーメッセージをみたら前々からアナウンスがあったGithubの認証方法の変更によるもので、放置していたことが深夜の障害対応時に仇になってしまった

Githubの認証方法の変更のアナウンスは以下で、以前のパスワードでの認証からPersonal Access Tokenや二段階認証などの代替手段に変えないといけなかった

Token authentication requirements for Git operations | The GitHub Blog

すぐさま対応する

さっとできる対応方法は2つでどちらでもよいが両方調べた
・個人アクセストークンの利用
SSH認証

個人アクセストークンの利用

公式ドキュメントが画面キャプチャつきでわかりやすかったので特にまとめない

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

Macのキーチェーンの認証情報を更新する

上のアクセストークンの払い出して、パスワードの設定が終わった後でも古い認証情報がMacのキーチェーンに残っているとダメなので、Macのキーチェーンからの認証情報を更新する必要がある

それは以下のドキュメントに書かれていた

macOS キーチェーンからの認証情報を更新する - GitHub Docs

SSH認証

こちらも公式ドキュメントがわかりやすくまとまっていたが、以下を参考にさせてもらった

GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~ - Qiita

試す

以下のコマンドで接続を確認する

$ ssh -T git@github.com
Hi uga! You've successfully authenticated, but GitHub does not provide shell access.

成功したことが確認できる

ちなみに、git cloneはhttpsではなくsshで行う

まとめ

アナウンスがあったことは早めにやっておくべきだった教訓

そうしないと深夜の障害対応時に焦ることになる