Celeb Glow
updates | March 21, 2026

How can I encrypt a file with gpg non-interactively?

I want to write a script that automatically encrypts a file using gpg and a password that is saved in a file.

I tried this:

gpg -c --passphrase-fd 0 file.txt < pass.txt

When I run this on an Ubuntu 16.04 server, it encrypts the file, as expected. When I run it on an Ubuntu 18.04 desktop, it asks me for a passphrase, using the Password Manager modal dialog.

How can I skip the dialog and do a non-interactive encryption?

As a workaround, I did this using openssl instead of gpg:

openssl aes-256-cbc -pass file:pass.txt -e -in file.txt -out file.txt.enc

2 Answers

I tested in my Lubuntu 18.04 LTS.

  • Your command line fails for me in the same way as you describe.

  • The following command line works for me,

    gpg --batch -c --passphrase-file pass.txt file.txt

See details in man gpg

 --passphrase-file file Read the passphrase from file file. Only the first line will be read from file file. This can only be used if only one passphrase is supplied. Obviously, a passphrase stored in a file is of questionable security if other users can read this file. Don't use this option if you can avoid it. Note that this passphrase is only used if the option --batch has also been given. This is different from GnuPG version 1.x.
2

Or if you don't want to create a passphrase file, like when you are writing a script, You can use it like this:

gpg --batch --passphrase 'somepass' -c file.txt

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

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