Arquivo tar.gz protegido por senha

O problema

Arquivos .tar, .gz and .tar.gz não podem ser protegidos por senha diretamente.

Arquivos .zip podem, mas não são muito seguros.

A solução

Processar o comando tar através do gpg.

Ambiente de testes

  • Ubuntu 18.04 com pacote gpg (apt install gpg).

O código

Criptografar (solicita senha):

tar czvf - directory | gpg --symmetric --cipher-algo aes256 -o directory.tar.gz.gpg

Descriptografar:

gpg -d directory.tar.gz.gpg | tar xzvf -

Referências

Extras

Extra 1: bash script simples

tar_encrypt.sh:

#!/bin/bash
if [ ! "$1" ]; then
    echo ""
    echo "Diga o nome do arquivo (sem extensão, faço isso por você)"
    echo "-----------------------------------------------------------------"
    echo "uso: tar_encrypt nome_destino diretorio/"
    echo ""
    exit 0
fi

if [ ! "$2" ]; then
    echo "Diga o nome do diretório para processar"
    echo ""
    echo "uso: tar_encrypt nome_destino diretorio/"
    exit 0
fi

tar czvf - ${2} | gpg --symmetric --cipher-algo aes256 -o ${1}.tar.gz.gpg

tar_decrypt.sh

#!/bin/bash
if [ ! "$1" ]; then
    echo ""
    echo "Diga o nome do destino"
    echo "-----------------------"
    echo "uso: tar_decrypt nome_destino.tar.gz.gpg"
    echo ""
    exit 0
fi

gpg -d ${1} | tar xzvf -

Torne executável:

chmod 755 *.sh

Extra 2: arquivos zip protegidos por senha

zip -er protegido.zip directory/

Onde:

-r   recurse into directories
-e   encrypt