Puis-je faire quelque chose comme:
gpg --public-key my.pub -e file.txt
Si je peux, une raison pour laquelle je ne devrais pas faire ça?
P/s: Je pense que je n'ai pas besoin de connaître le destinataire car ma machine n'a qu'une seule clé publique à la fois.
Mais cette clé va bientôt changer (et je peux supprimer tous les anciens fichiers cryptés, donc pas besoin de les conserver).
GnuPG ne prend pas en charge le cryptage vers un destinataire spécifié par un fichier de clé. La clé doit être importée à l'avance et le destinataire défini avec son adresse e-mail ou son ID de clé.
Je recommanderais d'utiliser une approche plus propre comme prévu par GnuPG et de coder en dur soit l'empreinte digitale de la clé, soit un ID utilisateur donné par cette clé et l'importer comme d'habitude.
Si vous ne voulez vraiment pas importer la clé, vous pouvez faire comme solution de contournement (qui importe en fait la clé, mais dans un répertoire personnel GnuPG temporaire):
Importez la clé dans un dossier temporaire, par exemple en utilisant
gpg --homedir /tmp/gnupg --import my.pub
Déterminez l'ID de clé de la clé stockée dans le fichier:
KEYID=`gpg --list-public-keys --batch --with-colons --homedir /tmp/gnupg | head -n1 | cut -d: -f5`
Chiffrer un message au destinataire
gpg --homedir /tmp/gnupg --recipient ${KEYID} --encrypt
Nettoyer le répertoire personnel temporaire de GnuPG
rm -f /tmp/gnupg
Vous pouvez bien sûr l'enregistrer en tant que script pour le rendre plus pratique.
Depuis GnuPG 2.1.14 il y a une nouvelle option permettant de crypter à partir d'un fichier clé: --recipient-file FILENAME
. Il fonctionne à partir d'un fichier armé binaire ou ascii.
Vérifiez les notes de version ou liste de diffusion des développeurs .
Pour autant que je sache, les identifiants de clé publique, les dates de validité des clés, le nom et l'adresse e-mail du destinataire sont intégrés dans le fichier GPG ASCII Armor file ( GnuPG Manual )
pub 1024D/BB7576AC 1999-06-04 Alice (Judge) <[email protected]>
Donc, en utilisant le fichier de clé de pub/ID de clé/nom/e-mail pour identifier la clé publique à utiliser doit tous être équivalents.
MAIS je n'ai pas accès à une machine Linux pour le moment, donc je ne peux pas vérifier.
Il ressort de l'examen de votre question que vous souhaitez chiffrer à l'aide de votre propre clé publique que vous auriez déjà ( my.pub dans l'exemple).
En effet, non seulement c'est possible, c'est souhaitable car il sert à fournir automatisation non interactive du cryptage . Si c'est [~ # ~] votre [~ # ~] clé publique, alors vous lui faites confiance implicitement et pouvez faire le suivre sans souci:
gpg --batch --yes --trust-model always -r $GPGPUBKEYRECIPIENTEMAIL -e ./file.txt
Aucune invite interactive nécessitant une réponse, le cryptage peut donc être scripté. NOTE : je télécharge mon [~ # ~] public [~ # ~] clé du serveur public sur lequel je veux protéger les données, en gardant la clé PRIVÉE à part.
Cependant, si vous PAS cryptez avec votre propre clé, le --trust-model always
le commutateur pourrait être douteux. Notez également que lors du décryptage, vous serez invité à entrer un mot de passe, sauf si vous automatisez bien sûr. Bourgeon HTH - Terrence Houlahan