18
11

WSL2(Windows Subsystem for Linux 2)環境でgitをhttps経由で利用するときに認証情報を保持する

Last updated at Posted at 2020-05-18

背景

WSL2を利用することでWindwosでもLinux環境での開発を実現することができるようになった。しかし、WSL2でHTTPSプロトコルを使用してgitのリポジトリにプッシュしようとすると毎回、ユーザー名とパスワードの入力を求められる。この問題を回避するためにWSL2とGit for Windowsに付属しているgit-credential-managerを連携させる。WSL2とgit-credential-managerを連携することでgitリポジトリにpushをしても毎回ユーザー名とパスワードの入力を求められなくなる。

Git for Windowsのインストール(Windows上)

もし、まだGit for Windowsをインストールしていなければ以下のサイトからダウンロードしてインストールを行う
https://git-scm.com/download/win

WSL2上のgit-credientialとGit for Windowsのgit-credential-managerを連携(Linux上)

エディタでgit-credential-managerを開く

sudo vi /usr/bin/git-credential-manager

git-credential-managerに以下の内容を追記して保存する
(2024/2/6 追記)
Git for Windowsの実行ファイル名がgit-credential-manager.exeからgit-credential-wincred.exeにファイル名が変更されたため、実行ファイル名を次のように記載する。(※1)

#!/bin/sh
exec /mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-wincred.exe $@

git-credential-managerの実行権限を付与する

sudo chmod +x /usr/bin/git-credential-manager

~/.gitconfigを開き、認証に関する設定(認証時に利用する認証マネージャーの設定)を追記する

[credential]
helper = manager

以上の設定で連携が完了する。これで初回のプッシュ時に認証情報を入力すると、以降同じリポジトリにプッシュしても認証情報は求められない。

参考ページ

https://blog.anaisbetts.org/using-github-credentials-in-wsl2/
https://stackoverflow.com/questions/72472443/git-credential-manager-not-found-on-wsl2

(※1)
git-credential-wincred.exeのパスを実行してうまく動作しない場合は、おそらく古いバージョンのGit for Windowsを使用していると思われるのでgit-credential-managerを指定する。もしくは新規にGit for Windowsを再インストールして、git-credential-wincredをパスに指定する。

#!/bin/sh
exec /mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe $@
18
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
11