WSL2 から GitHub CLI を使って認証を行うまで

はじめに

この記事は WSL2 上の Ubuntu 環境で、Github アカウントに接続しリポジトリに対する基本操作を行うまでの備忘録です。

元々は SSH キーによる認証が主流で環境構築の度に毎回面倒だと思っていたのですが、GitHub CLI を使えば認証や GitHub の操作もターミナル上で完結するようになるため、今更ながら使ってみることにしました。

1. GitHub CLI のインストール

最新版をインストールしたい方向けの手順

cli/docs/install_linux.md at trunk · cli/cli

公式の install_linux.md を参考にインストールを進めます。

以下が公式のコマンドですが、コピペ時にバックスラッシュの位置がズレたりしてうまくいかないことがあるので、1行にしたコマンドも置いておきます。

(type -p wget >/dev/null || (sudo apt update && sudo apt install wget -y)) \\
	&& sudo mkdir -p -m 755 /etc/apt/keyrings \\
	&& out=$(mktemp) && wget -nv -O$out <https://cli.github.com/packages/githubcli-archive-keyring.gpg> \\
	&& cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \\
	&& sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \\
	&& sudo mkdir -p -m 755 /etc/apt/sources.list.d \\
	&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] <https://cli.github.com/packages> stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \\
	&& sudo apt update \\
	&& sudo apt install gh -y
(type -p wget >/dev/null || (sudo apt update && sudo apt install wget -y)) && sudo mkdir -p -m 755 /etc/apt/keyrings && out=$(mktemp) && wget -nv -O$out <https://cli.github.com/packages/githubcli-archive-keyring.gpg> && cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null && sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg && sudo mkdir -p -m 755 /etc/apt/sources.list.d && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] <https://cli.github.com/packages> stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null && sudo apt update && sudo apt install gh -y

バージョン確認が動作していればインストールは完了です。

gh --version
gh version 2.81.0 (2025-10-01)
https://github.com/cli/cli/releases/tag/v2.81.0><br>

上記の Linux 向けのインストール手順を進めたところ、gh --version などの実行に毎回10秒程度かかるようになり使いにくかったのでパッケージ追加などは行わずにシンプルに追加することに。

sudo apt install gh

インストール後に以下を実行し、バージョンが出力されていれば完了です。

gh --version
gh version 2.45.0 (2025-07-18 Ubuntu 2.45.0-1ubuntu0.3)
https://github.com/cli/cli/releases/tag/v2.45.0>

2. GitHub CLI を利用した認証

以下のコマンドでブラウザを開いて認証までをやってくれるのですが、WSL から Windows 側のブラウザを開くことができないためこのまま認証処理を実行してもエラーになります。

gh auth login
gh auth login
? Where do you use GitHub? GitHub.com
? What is your preferred protocol for Git operations on this host? HTTPS
? Authenticate Git with your GitHub credentials? Yes
? How would you like to authenticate GitHub CLI? Login with a web browser

! First copy your one-time code: XXXX-XXXX
Press Enter to open <https://github.com/login/device> in your browser... 
! Failed opening a web browser at <https://github.com/login/device>
  exec: "xdg-open,x-www-browser,www-browser,wslview": executable file not found in $PATH
  Please try entering the URL in your browser manually

WSL からブラウザを開くために wslview をインストールします。

sudo apt install -y wslu

これにより、認証時に Windows 側のブラウザが起動するようになったので、再度 gh auth login を実行します。

gh auth login
? What account do you want to log into? GitHub.com
? What is your preferred protocol for Git operations on this host? HTTPS
? How would you like to authenticate GitHub CLI? Login with a web browser

! First copy your one-time code: XXXX-XXXX
Press Enter to open github.com in your browser... 
grep: /proc/sys/fs/binfmt_misc/WSLInterop: No such file or directory
WSL Interopability is disabled. Please enable it before using WSL.
grep: /proc/sys/fs/binfmt_misc/WSLInterop: No such file or directory
[error] WSL Interoperability is disabled. Please enable it before using WSL.
✓ Authentication complete.
- gh config set -h github.com git_protocol https
✓ Configured git protocol
! Authentication credentials saved in plain text
✓ Logged in as ******

Login with a web browser を選択したところで Windows のブラウザで GitHub の認証ページが開きます。

ターミナルに表示されている「First copy your one-time code」を入力し、画面の指示に従って認証を進めます。

認証が正しく完了したかを確認するために以下を実行します。

gh auth status

Logged in as (ユーザー名) と表示されれば認証成功です。

3. Git の初期設定

GitHub CLIの認証が完了したら Git の初期設定をしておきます。 ここは Git 側の設定なので昔から変わらずですね。

メールアドレスについては GitHub の noreply アドレスを使うのが推奨されているので、 https://github.com/settings/emails の「Keep my email addresses private」を有効にして取得した noreply アドレスを使用してください。

git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"

認証周りの設定については GitHub CLI が設定してくれるので以下を実行しましょう。

gh config set git_protocol https
gh auth setup-git

1つ目のコマンドは GitHub CLI からリポジトリを操作する際のデフォルトの接続方式を設定します。 2つ目のコマンドで Git が認証情報を求めた際に GitHub CLI が自動で処理してくれるようになります。

4. リポジトリの作成

ここまでで基本的な設定が完了したため、実際にリポジトリを作成してみます。

gh repo create
gh repo create
? What would you like to do? Create a new repository on GitHub from scratch
? Repository name gh-repo-create-test
? Description $gh repo create で作成したリポジトリ
? Visibility Public
? Would you like to add a README file? Yes
? Would you like to add a .gitignore? Yes
? Choose a .gitignore template Nextjs
? Would you like to add a license? Yes
? Choose a license MIT License
? This will create "gh-repo-create-test" as a public repository on GitHub. Continue? Yes
✓ Created repository xxxxxx/gh-repo-create-test on GitHub
  <https://github.com/xxxxxx/gh-repo-create-test>
? Clone the new repository locally? No

リポジトリ作成時に必要な情報を対話形式で設定することができました。

さいごに

GitHub CLI ではリポジトリの作成以外にも、Issue や Pull Request の作成など、今までブラウザ上で行っていた多くの操作をターミナル上で行えるためとても便利です。

気になる方はどのような機能があるかドキュメントを見てみてください。

https://cli.github.com/manual

投稿者プロフィール

HirayamaMotoki

関連記事

  1. 【Git】環境構築メモ

  2. 【React×TypeScript】環境構築メモ

  3. Continue と Ollama を接続するメモ

  4. 【Node.js】環境構築メモ

  5. 【Node.js】バージョン管理をVoltaに移行する

  6. Ollama の環境構築メモ

最近の記事

  1. AWS
  2. AWS

制作実績一覧

  1. Checkeys