O processo a seguir criptografa o arquivo no disco local primeiro e pode ser enviado pela rede (ou armazenado, no entanto, necessário)
Primeiro, gere chaves públicas e privadas (feitas apenas uma vez):
openssl genrsa -out key.pem 2048
openssl rsa -in key.pem -out key-public.pem -outform PEM -pubout
Em seguida, a cada backup:
-
Gere uma longa senha aleatória, salve no arquivo
-
echo -n "Tl4R6dnvWXiDeXr1LtpCNkyLG1" > key.txt
-
-
criptografar arquivo com a senha
-
openssl enc -aes-256-cbc -pass file:key.txt < UNENCRYPTED_FILE > encrypted.dat
-
-
criptografar senha com chave pública
-
openssl rsautl -encrypt -pubin -inkey key-public.pem < key.txt > enc.key.txt
-
Em seguida, salve encrypted.dat AND enc.key.txt onde desejar.
Para descriptografar:
-
Descriptografar senha criptografada com chave privada
-
openssl rsautl -decrypt -inkey key.pem < enc.key.txt > key.txt
-
-
Descriptografar arquivo
-
openssl enc -aes-256-cbc -d -pass file:key.txt < encrypted.dat > UNENCRYPTED_FILE
-
Isso é muito mais longo que o Anwser de Florian, mas eu decidi usá-lo para entender melhor o processo, e não depender de variáveis de configuração GPG dependentes do servidor, etc. Eu também não consegui encontrar nenhuma documentação GPG útil.