Search code examples
securityscriptinggnupgpgp

How to let Makefile uses gpg passwordlessly?


I have a Makefile that calls gpg to decrypt text files before opening it with a text editor for editting. Because I do it frequently, I'd like save time typing in password every time, how can I set up gpg to remember I passed the password test recently? For example, trigger me to type in password only if I haven't done it in the last 30 minutes.

Thanks!


Solution

  • I think there are two ways to do this:

    • let gpg read the passphrase from a file using the option --passphrase-file (but the gpg man page advises against using this option if you can avoid it! And i think you can avoid it as follows...);

    • use gpg-agent for caching the passphrase. If the shell script requires you to enter the passphrase every time, there's likely no agent running. If a gpg-agent is running, env | grep GPG should give some output like GPG_AGENT_INFO=/tmp/gpg-6YivG1/S.gpg-agent:10479:1. If there's no GPG_AGENT_INFO variable set, you may have to start gpg-agent manually or (preferable) configure your system to start the gpg-agent automatically. How to do this depends on your distribution. The GnuPG Manual has some infos about this.