gpg crypter un fichier sans interaction du clavier
Je suis en cours d'exécution commande suivante dans un crontab pour crypter un fichier, et je ne veux pas d'une interaction entre le clavier
echo "PASSPHRASE" | gpg --passphrase-fd 0 -r USER --encrypt FILENAME.TXT
mais j'ai cette réponse:
gpg: C042XXXX: There is no assurance this key belongs to the named user
pub 40XXX/C042XXXX 2012-01-11 Name LastName. (comment) <user@email.com>
Primary key fingerprint: XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
Subkey fingerprint: XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
It is NOT certain that the key belongs to the person named
in the user ID. If you *really* know what you are doing,
you may answer the next question with yes.
Use this key anyway? (y/N)
- Depuis --passphrase-fd lit à la première ligne... ce qui se produit si vous exécutez
echo -e "PASSPHRASE" "\nyes" | gpg --passphrase-fd 0 -r USER --encrypt FILENAME.TXT
? - page de manuel de quelqu'un?
--batch
et--yes
.
Vous devez vous connecter pour publier un commentaire.
Comme David l'a laissé entendre, le problème ici est que gpg ne pas faire confiance à la clé publique que vous utilisez pour les chiffrer. Vous pouvez vous inscrire à la clé comme il l'a expliqué.
Une alternative, surtout si la clé pourrait être en train de changer occasionnellement--serait de virer de bord sur
--trust-model always
de votre commande gpg.Voici pertinentes bits à partir de la page de man:
Voici ma solution, basée sur paquetages gpg2 (mais je parie que vous pouvez appliquer la même technique à gpg)
Cela indiquera paquetages gpg2 à faire confiance à la clé à fond, de sorte que vous pouvez crypter sans invite
gpg2 --edit-key <key-id>
vous n'lsign
etsave
. Je pense que la confiance 5 est une mauvaise utilisation de ce (mal compris), et (pour moi), il a même été inefficace (inutile), parce que ce x539 dit.Le hack approche:
Le problème sous-jacent est que la clé que vous avez pour l'UTILISATEUR n'est pas signé. Si vous avez confiance, vous pouvez vous connecter avec
Il va probablement poser quelques questions, en fonction de votre configuration. Le faire une fois, alors vous devriez être bon d'aller dans votre crontab. Je voudrais encore vous recommandons d'utiliser la solution que j'ai proposé, en mettant le mot de passe dans un fichier séparé et de faire qu'il ne soit lisible que par l'utilisateur qui commande s'exécute. Si vous faites cela, vous pouvez tuer le
yes |
, et viens de le chiffrer ligne.lsign
serait une meilleure idée. N'est-il pas que si vous lsign ie. localement signer une clé, un signe qui reste sur votre ordinateur. Mais si vous suffit de vous inscrire, c'est considéré comme public, et, donc envoyé à un serveur de clés lorsque vous faites un--send-keys
?Utiliser cette commande, il vous aidera à
Je suppose que comme moi, beaucoup de gens viennent ici pour le "sans interaction du clavier" une partie de la question. Avec les paquetages gpg2 et gpg-agent, c'est devenu assez compliqué de signer/chiffrer/déchiffrer des trucs sans aucune interaction du clavier. Voici comment vous pouvez créer une signature lors de votre texte en clair de la clé privée de passe est enregistré dans un fichier texte:
Changement -b -s-a en fonction de vos besoins. Les autres commutateurs sont obligatoires. Vous pouvez aussi simplement utiliser
--passphrase 'SECRET'
. Comme l'a déjà souligné, être prudent avec ça. Les fichiers texte en clair sont pas beaucoup mieux, bien sûr.Ou signer la clé (après vous veryfied l'empreinte, bien sûr):
Après que vous avez pleinement confiance à la clé.
--lsign-key
peut-être une meilleure idée, non? voir mon autre commentaire à propos de lsignJ'ai été en cours d'exécution dans cette trop. Je n'arrivais pas à signer-clé pour faire quelque chose d'intéressant. Voici ce que j'ai fait:
créer une clé gpg:
d'obtenir un ID de clé (le résultat est dans la 5ème colonne):
Ajouter de confiance touche de ligne dans ~/gnupg/gpg.conf
gpg ligne dans le script de sauvegarde:
De débogage cron:
Je suis également capturer cron dubugging de sortie par l'envoi de stdout et stderr dans un fichier journal dans le cron de ligne de commande. Il est utile de savoir
trusted-key
lignegpg.conf
va provoquergpg
à toujours de confiance qui touche comme entièrement comme l'un des périls de l'utilisateur touches, ce qui est une mauvaise chose. En passant--trusted-key
comme un argument, et seulement dans ce cas précis est acceptable (comme c'est en passant--trust-model=always
de la même manière).--edit-key
, non pas par l'ajout d'untrusted-key
ligne). Le demandeur n'a pas dit que c'était leur clégpg
se plaint.Lorsque vous créez un certificat première fois avec votre e-mail-id select entièrement certificat de confiance alors à chaque fois que vous crypter n'importe quel fichier va poser pas de question, comme.... pour plus d'informations, ouvrez l'image dans le lien ci-dessus.
Une approche différente:
Pour refuser l'accès à des données sensibles (plutôt que de les chiffrer à l'aide de tiers clés), j'ai télécharger SEULEMENT* mon **PUBLIC clé pour le serveur je veux protéger les données et d'utiliser cette clé pour chiffrer avec. Cela supprime le besoin d'une invite de commandes pour la fourniture d'un mot de passe de faciliter l'automatisation et le meilleur de tous, le PRIVÉ clé est en dehors du serveur public.
Toutefois, si PAS chiffrement à l'aide de votre propre clé publique, l'utilisation de l'interrupteur
--trust-model always
est un peu ropey. De toute façon, une autre manière de résoudre le problème de la négation de l'accès aux données. HTH - Terrence Houlahan