Question Comment protéger les fichiers gzip par mot de passe sur la ligne de commande?


Je veux créer des fichiers tar.gz (et éventuellement tar.bz2), en utilisant la commande tar sur Ubuntu 10.04.

Je veux protéger le fichier par mot de passe.

Quelle est la commande pour faire cela (j'ai googlé, mais n'a rien trouvé qui montre comment créer et extraire des fichiers compressés en utilisant un mot de passe).

Est-ce que quelqu'un sait comment faire cela?


110
2017-07-12 12:50


origine




Réponses:


vous devez appliquer la philosophie unix à cette tâche: un outil pour chaque tâche.

le tarage et la compression est un travail pour tar et gzip ou bzip2, crypto est un travail pour soit gpg ou openssl:

Crypter

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

Décrypter

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

Ou en utilisant gpg

 % gpg --encrypt out.tar.gz

La variante openssl utilise le chiffrement symétrique, vous devrez indiquer au destinataire le mot de passe utilisé (alias «la clé»). La variante gpg utilise une combinaison de chiffrement symétrique et asymétrique, vous utilisez la clé de la partie réceptrice (ce qui signifie que vous n'avez pas à indiquer de mot de passe) pour créer une clé de session et crypter le contenu avec cette clé.

Si vous utilisez la route zip (ou 7z): essentiellement la même chose que la variante openssl, vous devez indiquer le mot de passe au destinataire.


136
2017-07-12 13:05



Pour ceux qui se demandent comment déchiffrer le fichier avec openssl: openssl aes-256-cbc -d -in out.tar.gz.enc -out decrypted.tar.gz - ndbroadbent
@ nathan.f77 cette commande montre également comment faire les choses sans les transférer dans openssl. openssl enc -aes-256-cbc -e -in foo.tar.gz -out bar.tar.gz.enc - Keith Smiley
@KeithSmiley si vous avez des archives volumineuses et pas beaucoup d'espace (comme cela pourrait être sur un VPS), il est plus efficace de canaliser. - Andrew Savinykh
Je ne peux pas sembler exécuter ceci sur un mac. Est-ce différent de toute façon? - eleijonmarck
@eleijonmarck fournir la partie "ne fonctionne pas parce que <insert-error-message-here>" ... - akira


Si vous souhaitez protéger uniquement les fichiers par mot de passe, utilisez l’utilitaire zip manuel via la ligne de commande.

zip -e <file_name>.zip <list_of_files>

-e demande à l'utilitaire zip de chiffrer les fichiers mentionnés dans

Exemple de travail:

$ 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*

25
2018-06-17 20:12



Le cryptage de fichier Zip n'est en aucune façon sûr. - Kristopher Ives
@KristopherIves pouvez-vous élaborer sur l'insécurité? - tscizzle
@tscizzle unix-ag.uni-kl.de/~conrad/krypto/pkcrack/pkcrack-readme.html - Kristopher Ives
@KristopherIves Il nécessite "une autre archive ZIP, contenant au moins un des fichiers de l'archive chiffrée dans non crypté forme "pour travailler. - Franklin Yu
"Vous ne devez connaître qu'une partie du texte en clair (au moins 13 octets)". Cela le rend beaucoup plus vulnérable que si un fichier entier non chiffré était requis (ce qui est déjà assez mauvais). En outre, le cryptage zip ne résiste pas aux attaques par force brute (par exemple avec Jack the Ripper). Personne ne devrait l'utiliser pour quelque chose de grave. - EM0


Voici quelques façons de le faire. Une chose à noter est que si vous utilisez des outils de compression et de cryptage séparés, vous devez toujours compresser avant le cryptage, car les données cryptées sont essentiellement non compressibles.

Ces exemples compressent et chiffrent un fichier appelé clear_text.

En utilisant gpg

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

gpg compresse le fichier d'entrée avant le cryptage par défaut, -c signifie utiliser un chiffrement symétrique avec un mot de passe. Le fichier de sortie sera clear_text.gpg. Un avantage d'utiliser gpg C'est-à-dire qu'il utilise des formats OpenPGP standard, de sorte que tout logiciel de chiffrement prenant en charge OpenPGP pourra le déchiffrer.

En utilisant mcrypt

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

le -z option compresse. Par défaut, cela génère un fichier appelé clear_text.gz.nc.

En utilisant bcrypt

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

bcrypt compresse avant le cryptage par défaut, le -r L'option est telle que le fichier d'entrée n'est pas supprimé dans le processus. Le fichier de sortie est appelé clear_text.bfe par défaut.

En utilisant gzip et 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 est ce que cela ressemble, un programme qui prend en entrée stdin et sort des données chiffrées sur stdout. Il ne prend pas en charge la compression, vous pouvez donc canaliser l'entrée via gzip en premier. Comme la sortie va à stdout, vous devrez la rediriger vers un fichier avec un nom de votre choix. Probablement pas le moyen le plus efficace de faire ce que vous demandez, mais aespipe est un outil polyvalent, alors j'ai pensé que cela valait la peine d'être mentionné.


14
2018-05-01 01:38





Vous pouvez utiliser 7zip pour créer votre archive protégée par mot de passe. Vous pouvez spécifier le mot de passe sur la ligne de commande (ou dans un script) de la manière suivante:

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

7zip peut également lire à partir de STDIN comme suit:

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

S'il est obligatoire d'utiliser des fichiers zip, vous pouvez vouloir jouer avec le -t<type>paramètre (par ex. -tzip).


9
2017-10-17 09:52



J'ai choisi cette réponse car c'est la seule qui réponde à la question. La question n'est pas de savoir comment chiffrer un message, mais comment protéger une archive par mot de passe. C'est tout ce que je devais faire. (Gmail bloquait mes sauvegardes de serveur car il avait décidé qu’il y avait quelque chose de dangereux dans la pièce jointe et j’avais juste besoin d’ajouter un mot de passe. Il n’a pas besoin d’être sécurisé.) - felwithe


Tar, gzip et bzip2 ne prennent pas en charge la protection par mot de passe. Utilisez un format de compression, tel que zip, ou chiffrez-le avec un autre outil tel que GnuPG.


5
2017-07-12 12:52



Ah, cela explique pourquoi je n'ai rien trouvé en ligne. Je pense que je vais aller pour zip. - morpheous
Gah !, j'essaye de zipper récursivement un répertoire avec des mots de passe, et il ne crée qu'un fichier zip avec le nom foobar dans un répertoire (vide). Voici la commande que j'utilise: zip -e foobar.zip foobar. foobar est un dossier non vide dans le répertoire en cours - morpheous
Tout comme l'homme dit, -r. - Ignacio Vazquez-Abrams


Créer avec:

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

Il vous demandera un mot de passe.

Décrypter avec:

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

2
2018-05-23 12:25