Füttern Sie GPG mit Antworten

Füttern Sie GPG mit Antworten

Ich möchte so etwas tun wie:

echo -e "trust\n5" | gpg --edit-key "Dor"

Um GPG mit vorab gegebenen Antworten zu versorgen.

Aber es funktioniert nicht. Irgendeine Idee?

Antwort1

echo -e "trust\n5" | gpg --edit-key "Dor"funktioniert nicht, da gpgdie Antworten nicht vorgelesen werden stdin, sondern /dev/ttydirekt zum Lesen geöffnet werden.

Dies kann umgangen werden mitexpect, ein Tool zur Automatisierung interaktiver Anwendungen.

Antwort2

Wie Thomas Nyman antwortete, besteht die Lösung darin, expectein ähnliches Tool zu verwenden.

Leider expectkann es schwierig sein, zu lernen und zu verwenden, und es ist eine erhebliche Investition an Zeit und Mühe, eine Sprache zu lernen, die nur für eine Aufgabe verwendet werden kann. Möglicherweise finden Sie es einfacher – und auf lange Sicht nützlicher –, Perl oder Python zu verwenden, da beide Bibliotheken haben, mit denen Sie dasselbe tun können wie expect.

Für Perl wäre dasErwarten.pm

Für Python schauen Sie sich anerwarte

Beide sind wahrscheinlich bereits für Ihre Linux-Distribution gepackt – in Debian sind sie beispielsweise libexpect-perlund python-pexpect.

Übrigens, auch wenn es für Ihre Frage nicht unbedingt relevant ist, ist es erwähnenswert, dass Perl auch Bibliotheken/Module hat, die speziell dafür entwickelt wurden, expectähnliche Dinge über Netzwerkverbindungen zu tun – z. B. Perl Net::SSHund Net::TelnetModule. Python hat ähnliche Bibliotheken.

verwandte Informationen