J'écris un script qui crée des archives de projet, puis en crée des archives 7z pour me permettre d'enregistrer des versions spécifiques et de conserver des sauvegardes cryptées.
Une fois que j'ai généré les archives et que j'arrive à la phase de chiffrement, je voudrais chiffrer les fichiers avec un seul appel, gpg
si possible, afin que l'utilisateur ne saisisse sa phrase secrète qu'une seule fois. Sinon, nous devrions soit mettre en cache la phrase secrète de l'utilisateur en mémoire (ce que j'aimerais vraiment ne pas faire), soit les faire entrer et confirmer leur phrase secrète pour chaque projet archivé (ce qui est pire).
Existe-t-il un moyen de transmettre plusieurs noms de fichiers pour les gpg
chiffrer tous en une seule fois?
Si j'essaye ceci:
$ gpg --cipher-algo AES256 --compression-algo BZIP2 -c project1.7z project2.7z
... Je vois l'erreur suivante dans le shell:
usage: gpg [options] --symmetric [filename]
Existe-t-il un moyen de faire ce que je cherche à accomplir?
Réponses:
Non, il n'y en a pas.
Vous voudrez probablement transmettre la phrase secrète avec l'une des options gpg suivantes (cette dernière option serait la plus sûre):
la source
Puisque GnuPG ne le supporte pas directement, la façon de le faire serait d'ajouter une autre couche, par exemple en utilisant
tar
.Et pour extraire:
Vous vous retrouverez avec
project1.7z
etproject2.7z
. Votre script peut alors reprendre là où vous vous étiez arrêté.la source
Si vous souhaitez essayer autre chose que GPG, il existe d'autres méthodes de sauvegarde pour crypter plusieurs fichiers:
source d'origine: http://www.obsd.hu/docs/Unix-backup-with-aes.txt
Utilisation: utilisez simplement "backup DIRECTORY" pour le chiffrement et "decrypt DIRECTORY.tar.gz.aes"
la source
Ont réussi à faire quelque chose comme ça, aujourd'hui:
Changé le répertoire vers le répertoire contenant les fichiers cibles, et exécuté un script Bash pour trouver les noms de fichiers requis et les répertorier dans un fichier texte que j'ai appelé
found.txt
.Exécuté un script Bash demandant à gpg2 de lire chaque nom de fichier dans une boucle et dans une variable de mémoire, et dans la même boucle de le crypter en utilisant ma clé de signature et en spécifiant qu'il était à lire par moi-même. gpg2 affiche une fenêtre contextuelle pour la saisie de votre phrase secrète, laquelle fenêtre contextuelle comporte une petite case à cocher où vous pouvez choisir de conserver votre phrase secrète active pour la session. Mauvaise pratique, mais pas si mauvaise si vous n'êtes pas sur le Net, et vous éteignez immédiatement après votre session de cryptage.
Le seul problème était qu'il y avait ay / n à gérer. Alors je me suis assis avec mon doigt sur la clé Y et j'ai chiffré 51 fichiers nos en moins d'une minute.
Les scripts sont donnés ci-dessous:
Le script 'find' était un fichier appelé
FindFilesAndListtoTextfile.sh
:Le script de chiffrement s'appelait ReadFilenameAndEncrypt.sh:
Cela doit être exécuté en tant qu'utilisateur régulier:
J'espère que cela t'aides. Je n'ai pas compris comment éviter le y / n.
la source
La commande suivante fonctionne pour moi tant que je n'ai aucun nom de fichier avec des espaces.
Vous pouvez également utiliser la commande find.
Enfin, si vous souhaitez utiliser un fichier pour le mot de passe, utilisez:
la source
Oui, il existe un moyen simple:
la source
echo "Entrez un mot de passe:"
lire le mot de passe
trouver . -type f -exec gpg --passphrase $ password -c {} \;
Hmmmmmm GPG demande avec un GraphicMessageBox un mot de passe pour chaque fichier.
J'ai donc décidé d'utiliser CRYBULL (programme de cryptographie que j'ai créé) dans C-ANSI. Vous pouvez télécharger gratuitement sur www.labolida.com
trouver . -type f -exec crybull {} {} .cry $ password encode \;
la source