wsl 上の git で credential.helper を利用する方法


WSL Advent Calendar 2020 の4日目として書いた記事です。

概要

wsl で Git を使うと、Windows に比べて圧倒的に早いですよね。コミットの早さでいったら、20秒か一瞬かくらいの差があるわけですごい便利になるのですが、Credential Helper の設定があまり公開されていないようなので記事にしてみました。

前提

  • Windows 側には Git を入れていない。
  • WSL では Ubuntu 20.04 を使用。

設定方法

1. credential.helper をインストール&設定

WSL上で実行
$ sudo apt-get install libsecret-1-0 libsecret-1-dev libglib2.0-dev
$ sudo make --directory=/usr/share/doc/git/contrib/credential/libsecret
$ git config --global credential.helper \
   /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret

2. 「キーリングのロック解除」が訊かれないようにする

毎回「キーリングのロック解除」が訊かれると面倒なので、訊かれないようにします(パスワードを空にします)。

  • ただし、これをやるとWSL内のキーチェーンに保存された git 等のパスワードを間接的に空パスワードで使えることになってしまうので取り扱いに注意。そもそも PC にログインしなければ WSL にも入れないはずなので、良しとして使う。
  1. 下記で seahorse 実行

    WSL上で実行
    $ sudo apt install seahorse
    $ seahorse
    
  2. 「<」クリックしてメニュー出す

  3. Default keyring を右クリックして 削除

  4. その後、git pull などした際にキーリングのパスワード聞かれるので空に設定。

あとがき

WSL すごい便利ですね!
僕は Git だけじゃなく IntelliJ や Docker, Node, Python 全部 WSL で動かして開発やってます。
IME (Mozc) が落ちやすい問題何とかする方法探し中だけど、それ以外はかなり快適!
WSL は標準になっていく予感がしますね。