Usuario del software
2010-07-12 12:50:47 +0000 2010-07-12 12:50:47 +0000
139

¿Cómo proteger con contraseña los archivos gzip en la línea de comandos?

Quiero crear algunos archivos tar.gz (y posiblemente tar.bz2), utilizando el comando tar en Ubuntu 10.04.

Quiero proteger el archivo con una contraseña.

¿Cuál es el comando para hacer esto (he buscado en Google, pero no he encontrado nada que muestre cómo crear y extraer archivos comprimidos usando una contraseña).

¿Alguien sabe cómo hacerlo?

Respuestas [6]

165
2010-07-12 13:05:22 +0000

hay que aplicar la filosofía unix a esta tarea: una herramienta para cada tarea.

tarar y comprimir es una tarea para tar y gzip o bzip2, crypto es una tarea para gpg o openssl:

Encriptar

% tar cz folder_to_encrypt | \
      openssl enc -aes-256-cbc -e > out.tar.gz.enc

Desencriptar

% openssl enc -aes-256-cbc -d -in out.tar.gz.enc | tar xz

Utilizar gpg

% gpg --encrypt out.tar.gz

La variante openssl utiliza encriptación simétrica, tendría que decirle a la parte receptora la 'contraseña' utilizada (también conocida como 'la clave'). la variante gpg utiliza una combinación de cifrado simétrico y asimétrico, utilizas la clave de la parte receptora (lo que significa que no tienes que decirle a nadie la contraseña involucrada) para crear una clave de sesión y cifrar el contenido con esa clave.

si vas por la ruta zip (o 7z): esencialmente es lo mismo que la variante openssl, tienes que decirle a la parte receptora la contraseña.

165
31
2012-06-17 20:12:34 +0000

Si su intención es sólo proteger con contraseña los archivos, entonces utilice la utilidad zip manual a través de la línea de comandos

zip -e .zip 

-e pide a la utilidad zip que cifre los archivos mencionados en

Ejemplo de trabajo:

$ touch file_{0,1}.txt # creates blank files file_0 & file_1    
$ zip -e file.zip file_* # ask zip to encrypt
$ ENTER PASSWORD:
$ VERIFY PASSWORD:
$ ls file*
31
22
2014-05-01 01:38:27 +0000

Aquí tienes algunas formas de hacerlo. Una cosa a tener en cuenta es que si vas a utilizar herramientas de compresión y encriptación separadas, siempre debes comprimir antes de encriptar, ya que los datos encriptados son esencialmente no comprimibles.

Estos ejemplos comprimen y cifran un archivo llamado clear_text.

Usando gpg $ gpg -c clear_text #Compress & Encrypt $ gpg -d clear_text.gpg #Decrypt & Decompress

gpg comprimirá el archivo de entrada antes de encriptarlo por defecto, -c significa usar encriptación simétrica con una contraseña. El archivo de salida será clear_text.gpg. Una de las ventajas de usar gpg es que utiliza los formatos estándar de OpenPGP, por lo que cualquier software de encriptación que soporte OpenPGP podrá desencriptarlo.

Usando mcrypt

$ mcrypt -z clear_text #Compress & Encrypt
$ mdecrypt -z clear_text.gz.nc #Decrypt & Decompress

La opción -z comprime. Por defecto, esto produce un archivo llamado clear_text.gz.nc.

Using bcrypt

$ bcrypt -r clear_text #Compress & Encrypt
$ bcrypt -r clear_text.bfe #Decrypt & Decompress

bcrypt comprime antes de encriptar por defecto, la opción -r es para que el archivo de entrada no se borre en el proceso. El archivo de salida se llama clear_text.bfe por defecto.

Usando gzip y aespipe

$ cat clear_text | gzip | aespipe > clear_text.gz.aes #Compress & Encrypt
$ cat clear_text.gz.aes | aespipe -d | gunzip > clear_text #Decrypt & Decompress

aespipe es lo que parece, un programa que toma la entrada en stdin y saca los datos encriptados aes en stdout. No soporta compresión, así que puedes pasar la entrada por gzip primero. Como la salida va a stdout, tendrás que redirigirla a un archivo con un nombre de tu elección. Probablemente no sea la forma más efectiva de hacer lo que pides, pero aespipe es una herramienta versátil, así que pensé que valía la pena mencionarla.

22
16
2014-10-17 09:52:46 +0000

Puedes usar 7zip para crear tu archivo protegido con contraseña. Puede especificar la contraseña en la línea de comandos (o en un script) de la siguiente manera:

7z a -p<password> <someprotectedfile>.7z file1.txt file2.txt

7zip también puede leer de STDIN de la siguiente manera:

cat <somefile> | 7z a -si -p<password> <someprotectedfile>.7z

Si es obligatorio utilizar archivos zip, puede que quiera jugar con el parámetro -t<type> (por ejemplo, -tzip).

16
7
2010-07-12 12:52:34 +0000

Ni tar, ni gzip, ni bzip2 soportan la protección por contraseña. O bien utiliza un formato de compresión que sí lo haga, como zip, o encripta con otra herramienta como GnuPG.

7
5
2017-05-23 12:25:37 +0000

Crear con:

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

Te pedirá una contraseña.

Desencriptar con:

gpg -d passwordprotectedarchive.tar.gz.gpg | tar xzvf -
5