本記事では、Windows Subsystem for Linux 2(WSL2)環境にGitをインストールし、GitHubに認証してリポジトリ操作をできるようにするまでの手順を解説します。また、混同されがちなGit for Windowsとの違いも説明します。
前提
- Windows 11
- WSL2とデフォルトディストリビューション(Ubuntu等)をインストール済み
もしWSL2が未設定の場合、関連記事の「WSL2のWindows11へのインストール、起動とシャットダウン」をご参照ください。
Gitのインストール
最新のUbuntuであれば既にGitがインストール済みの場合が多いですが、以下のコマンドで確認します。
git --version
バージョンが表示されない場合は、以下のコマンドでパッケージリストを更新してからインストールします。
sudo apt update
sudo apt install git -y
Gitのグローバル設定
コミット時に記録されるユーザー名とメールアドレスを登録します。
git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"
GitHub認証の選択肢
GitHubリポジトリへのアクセスには、主に「SSH」と「HTTPS」の2つの方式があります。
| 方式 | 特徴 | 推奨されるケース |
| SSH | 秘密鍵・公開鍵ペアを使用。一度設定すればセキュアで高速。 | Linux環境に慣れている場合、サーバー連携する場合。 |
| HTTPS | Git Credential Manager (GCM) を使用。Windows側の認証情報を共有。 | ブラウザ認証(Webログイン)で手軽に済ませたい場合。 |
SSH認証の設定
WSL上でSSH鍵を作成します。セキュリティ強度の高い Ed25519 形式を推奨します。
cd ~
ssh-keygen -t ed25519 -C "your_email@example.com"
※保存先はデフォルト(Enterキー)で進め、パスフレーズを設定してください。
ssh-agentへの登録
SSH使用時にパスフレーズ入力を省略するため、ssh-agent を利用します。~/.bashrc(または ~/.zshrc)の末尾に以下の設定を追記します。
# ~/.bashrc への追記例
if [ -z "$SSH_AUTH_SOCK" ]; then
eval "$(ssh-agent -s)" > /dev/null
fi
if ! ssh-add -l > /dev/null 2>&1; then
ssh-add ~/.ssh/id_ed25519
fi
GitHubに公開鍵を追加
GitHubにログインし、右上のアカウントメニューからSettingsをクリックします。

「SSH and GPG keys」メニューを選択し、「New SSH key」ボタンをクリックします。

WSL上で以下のコマンドを実行し、Windowsのクリップボードに公開鍵を貼り付けます。
cat ~/.ssh/id_ed25519.pub | clip.exe
Titleにわかりやすい公開鍵の名前を入力(例:WSL Ubuntu 24.04)、Keyにコピーした公開鍵を貼り付け、「Add SSH key」ボタンをクリックして保存します。

接続確認:
ssh -T git@github.com
Hi username! You've successfully authenticated... と表示されれば成功です。
これでGitHubとSSHで認証できるようになったので、ご自身のGitHubレポジトリをWSL上でgit cloneしてみてください。
git clone git@github.com:username/repository.git
GitHubでの新規レポジトリ作成
レポジトリを未作成の場合、GitHubで新規レポジトリを作成します。
GitHubの上部メニューの「+」アイコンのドロップダウンから「New Repository」をクリックします。

レポジトリ名を入力し、「Create repository」をクリックしてレポジトリを作成します。

表示されたSSH用のURLをコピーします。

WSL上でgit cloneし、レポジトリがWSL上に作成されれば成功です。
git clone git@github.com:username/wsl-git-test.git
ls -a wsl-git-test/ # 出力例:. .. .git
git cloneが失敗する場合
WSLでgit cloneを実行すると、以下のようなエラーが表示される場合です。
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
原因1. 秘密鍵のパスフレーズが間違っている。
SSHエージェントにSSH秘密鍵を登録していない場合、git cloneの際に設定したパスフレーズを入力する必要がありますが、入力値が間違っていると秘密鍵を複合できずエラーになります。
原因2. ~/.sshディレクト内のファイル権限が間違っている。
~/.sshディレクトリ及びディレクトリ内の各ファイルの権限が、以下のように適切に設定されているか確認します。
- ~/.ssh: 700 (drwx——)
- ~/.ssh/id_ed25519: 600 (-rw——-)
- ~/.ssh/id_ed25519.pub: 644 (-rw-r–r–)
- ~/.ssh/known_hosts: 600 (-rw——-)
原因3. GitHubのSSH設定
GitHubに公開鍵が追加されていないか、値が間違って設定されている可能性があります。GitHubのSSH設定で鍵が登録されているか確認し、されている場合は一度削除してから再度追加します。
Git Credential Manager認証(HTTPS経由)
WSL2からGitHubへHTTPS経由でアクセスする場合、認証方法(パスワードの代わり)として 「アクセストークン(PAT)」 を毎回入力する必要があります(パスワード認証は現在廃止)。この入力を省略するために、認証情報を安全に保存してくれるのが Git Credential Manager (GCM) です。
WSL2からWindows側のGit Credential Manager を呼び出すことで、ブラウザログインによる認証が可能になります。
Git Credential Managerのインストール
Git Credential Managerは、「Git for Windows」のコンポーネントとして提供されています。
そのため、まずはGit for Windowsを公式サイトからダウンロードします。

インストーラを起動すると設定画面がいくつも続きますが、すべてデフォルト設定のままNextを押してインストールを完了します。

PowerShellでGit for Windowsの以下のコマンドを実行します。WSL上にインストールしたGitのコマンドではないことにご注意ください。
git --version; git credential-manager --version
以下のようにバージョン情報が表示されたら無事にインストールされています。
git version 2.53.0.windows.2
2.7.3+5fa7116896c82164996a609accd1c5ad90fe730a
WSLを立ち上げ、以下のコマンドを実行します。
git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager.exe"
認証の流れ
HTTPS形式のURLで git clone や push を行うと、Windows側でログイン画面がポップアップします。
GitHubのレポジトリをHTTPS形式でWSL上でgit cloneします。
git clone https://github.com/username/wsl-git-test.git

プライベートリポジトリならこの段階でGit Credential Managerが立ち上がります。
もしパブリックレポジトリの場合は、続いてgit pushします。
cd wsl-git-test/
git push
Git Credential Managerが立ち上がりますので、「Sign in with your browser」を選択します。

WindowsのデフォルトブラウザでGitHub認証画面に遷移するので、ログインして「Authorize git-ecosystem」ボタンをクリックします。

認証完了画面が表示され、WSL上でgit cloneまたはgit pushが成功します。

以降の認証は自動化されます。
Git for Windowsとの違い
「WSL上のGit」と「Git for Windows」は、動作するOS環境が異なります。
Git for WindowsにはGit Credential Managerの他、以下のツールが含まれていrます。
- Git CMD: WidnowsターミナルでGitを使う
- Git GUI: Windows GUIアプリでGitを操作
- Git Bash: WindowsでBashエミュレータ(mintty)を動かす
これらのツールはいずれも、Windows上でGitを操作するためのツールです。WSL上でGitを操作するためのものではないので、混同しないようにしましょう。
| WSL上のGit | Git for Windows | |
| 実行環境 | Linux(Ubuntu等) | Windows |
| ファイルシステム | /home/user/… | C:\Users\Name… |
| 用途 | Linuxベースの開発、Docker利用 | Windowsアプリ開発、GUI操作 |
注意点: WSL環境では、基本的に「WSL上のGit」を使用してください。Windows側のGit(git.exe)をWSLから呼び出すと、パーミッションの問題やパフォーマンス低下の原因になります。
Git Bashの画面

まとめ
- 最新のUbuntuなら、Gitは最初から入っているか
aptで簡単に導入可能。 - SSH方式は一度設定すれば鍵交換だけで済むため、開発者にとって最も一般的。
- GCM方式はWindowsの認証機能を共有できるため、初心者でも扱いやすい。
自分の開発スタイルに合った認証方法を選んで、快適なGitHubライフを送りましょう。
