📘

【2023年最新】WSLで最も簡単にGitHubにログインする

2023/09/26に公開

概要

WSLでGitHubの認証情報を登録する最も簡単な方法を紹介します。
SSHやGit Credential Manager (GCM)も使わず、Windows側での設定は不要です。

TL;DR

git config --global user.email "you@example.com"
git config --global user.name "Your Name"
sudo apt -y install gh
gh auth login
# "How would you like to authenticate GitHub CLI?"はHTTPSを選択
# "Authenticate to Git with your GitHub credentials?"はYを入力

参考サイト

https://docs.github.com/ja/get-started/getting-started-with-git/caching-your-github-credentials-in-git

手順

以下をWSL上で実行する。

  1. メールと名前を設定する。
    なお、このメールと名前はアカウントに設定したものでなくても何でも良さそうである。
    ただし、コミットログに乗るので、公開されてもよいものにすること。
    私は名前はユーザーID、メールは個人メールをさらしたくないので、公式ドキュメントを参考にGitHub側が提供するID+USERNAME@users.noreply.github.comという形のメールを使っている。
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
  1. パッケージリストを更新してghコマンド(GitHub CLI)をインストール。
sudo apt -y update
sudo apt -y install gh
  1. GitHubにログイン
gh auth login

質問には以下のように答える。

What account do you want to log into?
 -> 個人の人はGitHub.com
What is your preferred protocol for Git operations?
 -> HTTPS
Authenticate Git with your GitHub credentials? 
 -> Y
How would you like to authenticate GitHub CLI?
 -> Login with a web browser
First copy your one-time code: XXXX-XXXX
 -> XXXX-XXXXの部分をコピーする
Press Enter to open github.com in your browser...

この後Enterを押す。が、多分ブラウザは開かれないので直接 https://github.com/login/device を開く。
その後、コピーしたコードを張り付けて認証する。
終わり!

failed to authenticate via web browser: Too many requests have been made in the same timeframe. (slow_down)というエラーが出るとき

おそらくWSLの時間がずれていることに因るエラー。
WSLを再起動すれば治る。
再起動はPowerShell側から下記のコマンドでWSLをシャットダウンしてもう一度立ち上げればよい。

wsl --shutdown

Discussion