I want to create a script that would automatically encrypt and push to GitHub into public repo some sensible files I don't want to expose (but do want to keep together with the whole project).

As a solution I decided to encrypt them with GPG. The issue is that I can't find any clues on how to encrypt a particular file with a passphrase passed as a CLI argument to a gpg -c command.

Does anybody know how to do this?


Use one of the --passphrase-... options, in batch mode:

  • --passphrase-fd reads the passphrase from the given file descriptor

    echo mysuperpassphrase | gpg --batch -c --passphrase-fd 0 file
  • --passphrase-file reads the passphrase from the given file

    echo mysuperpassphrase > passphrase
    gpg --batch -c --passphrase-file passphrase file
  • --passphrase uses the given string

    gpg --batch -c --passphrase mysuperpassphrase file

These will all encrypt file (into file.gpg) using mysuperpassphrase.

  • Thanks a lot! Follow-up question: where I can find some kind of man page where all command and options of gpg are listed? (as my ArchLinux man lists just a tiny bit and I found no --passphrase option on the web) – ddnomad Dec 14 '16 at 12:34
  • The GPG site has manuals, e.g. Invoking GPG (which lists all the options for GPG 2.1); the Debian manpage is also available. – Stephen Kitt Dec 14 '16 at 12:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.