深夜に自社サイトをスマホでみてみたら障害をみつけてしまい、急いでソースを確認しようと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認証
個人アクセストークンの利用
公式ドキュメントが画面キャプチャつきでわかりやすかったので特にまとめない
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で行う
まとめ
アナウンスがあったことは早めにやっておくべきだった教訓
そうしないと深夜の障害対応時に焦ることになる