Linux Encrypt Files/Decrypt Files – GPG Interactive/Non Interactive Modes

GNU Privacy Guard (GnuPG or GPG) is a free software alternative to the PGP suite of cryptographic software. This is quick guide, howto Encrypt and Decrypt files on Linux with password using GPG.

This guide deals with both the interactive mode and the non interactive mode. Interactive mode is useful when the purpose is encrypt some files on the command line. Non interactive mode is useful when the purpose is encrypt files using scripts. This guide also deals with single file encryption/decryption and multiple files encryption/decryption simultaneously.

Linux Encrypt/Decrypt File on Linux using GPG

Encrypt File on Linux using GPG

Interactive Mode

gpg -c filename.txt 
## OR ## 
gpg --symmetric filename.txt
 
Enter passphrase: [Enter your passphrase here]
Repeat passphrase: [Repeat your passphrase here]
 
## First run output ##
gpg: directory '/home/username/.gnupg' created
gpg: new configuration file '/home/username/.gnupg/gpg.conf' created
gpg: WARNING: options in '/home/username/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring '/home/username/.gnupg/pubring.gpg' created
Enter passphrase: [Enter your passphrase here]
Repeat passphrase: [Repeat your passphrase here]

Non Interactive Mode

gpg --yes --passphrase=[Enter your passphrase here] -c filename.txt

Decrypt File on Linux using GPG

Interactive Mode

gpg filename.txt.gpg 
 
gpg: CAST5 encrypted data
Enter passphrase: [Enter your passphrase here]
gpg: encrypted with 1 passphrase
gpg: WARNING: message was not integrity protected
 
## First run output ##
gpg: keyring '/home/username/.gnupg/secring.gpg' created
gpg: CAST5 encrypted data
Enter passphrase: [Enter your passphrase here]
gpg: encrypted with 1 passphrase
gpg: WARNING: message was not integrity protected

Note: If file already exists then you get following info when decrypt file

File 'filename.txt' exists. Overwrite? (y/N) y

Non Interactive Mode

gpg --yes --passphrase=[Enter your passphrase here] filename.txt.gpg

Quick Example Howto Use GPG on Command Line (Bash) Scripts

Following example is really simple backup from just created directory and files. Then script encrypts tar.gz package and remove original tar.gz file. After encryption file is safe to copy example to another server via FTP or so.

#!/bin/bash
 
BACKUP_DIR=/tmp/example-backup-dir
OUTPUT_FILE=/tmp/example-backup-dir.tar.gz
PASSPHRASE=my_secret_password
 
if [ -d $BACKUP_DIR ]; then
        rm -r $BACKUP_DIR
fi
 
mkdir $BACKUP_DIR
 
for i in {1..5}
do
   echo "Testing $i" > $BACKUP_DIR/file-$i.txt
done
 
tar -pczf $OUTPUT_FILE $BACKUP_DIR
 
gpg --yes --passphrase=$PASSPHRASE -c $OUTPUT_FILE
 
rm $OUTPUT_FILE
Follow If Not True Then False Updates!

Leave a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>