私が歌川です

@utgwkk が書いている

メモ: VSCode Remote (WSL) でgit commit時にGPG署名を行う

WSLにgpgをインストールすればGPG署名ができるようになるけど、ttyにパスフレーズ入力ウィンドウが表示されるので、使うのにコツが要る。 code コマンドでVSCodeを起動したら、commit時には code コマンドを叩いた元のターミナルを開かないとパスフレーズが入力できない。ターミナルを閉じていたらcommit不能になる。

GUIでパスフレーズを入力できないと詰むので、Windows側にGpg4winをインストールして、同梱されているpinentry.exeを使うのがよい。 ~/.gnupg/gpg-agent.conf に以下を指定する。 /mnt/c 経由で直接pinentry.exeのパスを指定してやるとすんなり動く。

pinentry-program /mnt/c/Program Files (x86)/Gpg4win/bin/pinentry.exe

こうするとCUI上でcommitするときもGUIの入力ウィンドウが出てくるけど諦めるしかない気がする。Xサーバを使うとWSL上のpinentryでGUIのダイアログを表示することができる?


git commit時にGPG署名するようになったモチベーションとしては、GitHub Actionsを使ったDDoSに巻き込まれた - 私が歌川です のときに、攻撃者のcommit logに自分の名前やアイコンが表示されていて気味が悪かった、というのがある。見るからにcommit logがおかしいのはそうだけど、見た目の上で自分になりすまされるのは気分がよくない。