About software, technology and random things


Using Git Bash With Custom Installation Of GPG / GnuPG


You have probably noticed that Git for Windows comes with MinGW64, which enables you to use programs (or to be more precise: Windows versions of these programs) that are usually only available to Linux users. One of the programs that MinGW64 / Git for Windows ships with is GPG / GnuPG. The current version of Git for Windows (2.17.1) for example comes with GPG version 1.4.22.

If you prefer using a custom installation of GPG / GnuPG by default, which is probably much more current than the one you installed manually (2.x), you can achieve this by doing the following:

  1. Install GPG as you normally would
  2. Make sure it is executable in the command line / PowerShell (as in: make sure the bin/ subdirectory of the GPG program directory is included in the PATH environment variable)
  3. Go to the Git for Windows program directory (e.g. C:\Program Files\Git\)
  4. Navigate to the usr/bin/ subdirectory and rename gpg.exe to something else (like gpg_disabled.exe)
  5. Close any open Git Bash instances and start a fresh one
  6. Check the GPG version via
    gpg --version

The way that Git Bash works is that is has its own set of directories which have a higher priority when looking for executable files than the ones in Windows' PATH environment variable. So in order to have your own GPG executable working as the "gpg" command, you have to get the included gpg.exe out of the way so it keeps looking in Windows' PATH environment variable.

You can still access the old GPG executable by using the new name (e.g. "gpg_disabled").

Unfortunately you have to do these steps every time you install or update Git for Windows, but at least now you know where to look!

The upside is that now Git (executed from the Git Bash) also uses your own version of GPG for its GPG-related operations.

I hope this was helpful.

Thanks for reading!


Using msysgit With PuTTY Pageant & Plink


If you have installed msysgit and are planning on using it in combination with Pageant from the PuTTY tool suite, you might run into the problem that it does not attempt to use any of the keys you have already loaded into Pageant. You can fix this by telling msysgit which program to use for the git fetch and pull operations:

  • Open your System window (Windows + Pause or "Start" => Right-click on "Computer" => "Properties")
  • Click on "Advanced system settings" (on the left)
  • Click on "Environment Variables..." (on the bottom)
  • Add a new system variable (or user variable if you just want this setting for the current user): "New..."
  • Variable name: GIT_SSH
    Variable value: (path to plink.exe) for example: C:\Program Files (x86)\PuTTY\plink.exe (important: just the path, no quotation marks at the beginning or the end!)
  • If you haven't already on this system / user, connect to the server via PuTTY in order to get the SSH server fingerprint prompt and remember it
  • Close any existing Git Bash / msysgit instances and start it up again

This should do it!

I hope this was helpful.

Thanks for reading!


%d bloggers like this: