¿Cómo protejo con contraseña un archivo .tgz con tar en Unix?

47

Estoy usando el comando tar de Unix de la siguiente manera para tar un directorio y sus archivos:

tar cvzf fileToTar.tgz directoryToTar

¿Hay alguna manera de proteger con contraseña el archivo .tgz? He creado archivos ZIP protegidos con contraseña en Windows, por lo que supongo que Unix tiene la misma capacidad. ¿Algunas ideas?

c12
fuente

Respuestas:

40

Usar crypto gpgen el archivo.

Ejemplos simples:

cat filename | crypt > filename.crypt

gpg -c –o filename.gpg filename

Christopher Neylan
fuente
2
esto no tiene sentido, ¿dónde está la contraseña?
Alexander Mills
3
@AlexanderMills La mayoría de las herramientas de aceptación de contraseñas solicitan al usuario desde el terminal en lugar de un argumento de línea de comando, para evitar que la contraseña aparezca en el historial.
Daffy
37

Puedes usar el comando:

zip -P password file.zip file

O mejor:

zip -e file.zip file

man zip
Panta
fuente
¿Zip sabe lo suficiente como para eliminar la sección de contraseña de la línea de comandos en el momento en que se ejecuta para que no se muestre (o solo se muestre para milicsonds) en una ps? Eso es legible para los humanos.
tgm1024
17

Ni el tarformato ni el gzformato tienen soporte incorporado para archivos que protegen con contraseña.

El zipformato de Windows combina varias funciones diferentes: compresión (por ejemplo, gzip), archivado de múltiples archivos en uno (por ejemplo, tar), encriptación (por ejemplo, gnupg) y probablemente otros. Unix tiende a tener herramientas individuales, cada una de las cuales hace bien una cosa, y le permite combinarlas.

El equivalente de Unix de un .ziparchivo protegido con contraseña probablemente se llamaría algo así como foo.tar.gz.gpgo foo.tgz.gpg.

Y hay código abierto zipy unzipherramientas para Unix, aunque es posible que no brinden todas las capacidades de las versiones de Windows (estoy bastante seguro de que el .zipxformato más nuevo no es compatible).

Keith Thompson
fuente
13

Puede usar gpg (= GnuPG):

gpg -o fileToTar.tgz.gpg --symmetric fileToTar.tgz

Esto te pedirá una frase de contraseña.

Para descifrar el archivo más adelante, simplemente haga lo siguiente:

gpg fileToTar.tgz.gpg

Esto le solicitará, nuevamente, la frase de contraseña.

thiagowfx
fuente
Nota: -ces la abreviatura de --symmetric, es decir, usar el cifrado simétrico predeterminado, lo que significa que se usa la misma frase de contraseña tanto para el cifrado como para el descifrado. (A diferencia de asimétrico, que implica claves públicas y claves privadas.)
Evgeni Sergeev
8

Puedes usar ccrypt .

Las cosas pueden ser encriptadas por una tubería:

tar cvvjf - /path/to/files | ccrypt > backup.tar.bz2.cpt

O en el lugar:

ccrypt backup.tar.bz2

Para automatizar, puede guardar una clave de acceso en un archivo y utilizar esta clave de acceso para cifrar:

ccrypt -k ~/.passkey backup.tar.bz2
c4baf058
fuente