Search code examples
encryptionpublic-key-encryptiongnupg

GPG encryption and decryption of a folder using command line


man page of gpg command line (Gnupg) has commands to encrypt and decrypt files. Here is a standard command to encrypt/decrypt files with gpg.

gpg --encrypt --recipient [email protected] ~/xxx/xxx.txt - to encrypt

gpg --output ~/xxx/xxx.txt --decrypt ~/xxx/xxx.gpg - to decrypt

But if i have a folder with multiple files and folders, how can i encrypt it with command line?


Solution

  • Solution 1:

    Use gpg-zip.

    Encrypt the contents of directory mydocs for user Bob to file test1:

    gpg-zip --encrypt --output test1 --gpg-args  -r Bob mydocs
    

    List the contents of archive test1:

    gpg-zip --list-archive test1
    

    This is an example directly from Encrypt or sign files into an archive. If you read that page in detail it will help you out a lot.

    Solution 2:

    Turn a directory into a file

    If you want to encrypt a directory, you will need to convert it to a file first. Run the command:

    tar czf myfiles.tar.gz mydirectory/
    

    This gives you a new file 'myfiles.tar.gz' which you can then encrypt/decrypt. To turn a tarball back into a directory:

    tar xzf myfiles.tar.gz
    

    now you can use encrypt in the same way that you have above. So:

    gpg --encrypt --recipient [email protected] ~/xxx/xxx.txt
    

    This is taken directly from an example on berkeley encrypting, which is also a quick and useful read.

    You can review the man page here: gnu gpg man