Frage gpg symmetrische Verschlüsselung mit Pipes


Ich versuche, Schlüssel zu generieren, um mein Laufwerk zu sperren (mit DM-Crypt mit LUKS), indem Sie Daten aus ziehen /dev/random und dann das mit GPG verschlüsseln.

In der Anleitung, die ich verwende, wird vorgeschlagen, den folgenden Befehl zu verwenden:

dd if=/dev/random count=1 | gpg --symmetric -a >./[drive]_key.gpg

Wenn Sie es ohne eine Pipe machen und eine Datei füttern, erscheint eine (n?) Curses-Eingabeaufforderung, in der Sie ein Passwort eingeben müssen. Wenn ich jedoch die Daten pipe, wiederholt es die folgende Nachricht viermal und sitzt dort eingefroren:

pinentry-curses: no LC_CTYPE known assuming UTF-8

Es sagt auch can't connect to '/root/.gnupg/S.gpg-agent': File or directory doesn't existIch gehe jedoch davon aus, dass dies nichts damit zu tun hat, da es sich auch dann zeigt, wenn die Eingabe aus einer Datei stammt.

Ich denke also, meine Frage läuft darauf hinaus: Gibt es eine Möglichkeit, gpg zu zwingen, die Passphrase von der Kommandozeile zu akzeptieren, oder auf andere Weise, dass dies funktioniert, oder muss ich die Daten aus schreiben /dev/random in eine temporäre Datei und dann diese Datei verschlüsseln? (Was meines Wissens nach in Ordnung sein sollte, da ich dies auf der LiveCD mache und den Swap noch nicht erstellt habe, sollte es nicht möglich sein, ihn auf die Festplatte zu schreiben.)


4
2018-06-03 03:49


Ursprung


GPGs --no-use-agent Sagen Sie gpg, dass Sie kein Agentenprogramm verwenden sollen, und akzeptieren Sie die im Terminal eingegebene Passphrase ... zumindest in gpg 1.x, diese Version scheint immer noch in aktuellen Ubuntu & Mint-Versionen verwendet zu werden - Xen2050


Antworten:


Stellen Sie sicher, dass Sie das tty besitzen:

# ls -l $(tty)
crw--w----. 1 foo tty 136, 0 Mar  1 16:53 /dev/pts/0
# chown root $(tty)

Setze GPG_TTY:

# export GPG_TTY=$(tty)

Nach diesen Schritten sollte gpg / pinentry funktionieren.


10
2017-07-18 20:25



Danke vielmals! Dies half mir, manuell zu gpg zu pipsen, und behob auch ein Problem, das ich mit dem Keybase-Kommandozeilen-Client hatte, der hinter den Kulissen zu gpg pumpt. - ajk


Nun ... am Ende entschied ich, einfach in eine Datei zu schreiben und dann diese Datei zu verschlüsseln, unter der Annahme, dass, da es keinen Austausch gab und das Dateisystem im RAM war, es mit dem nächsten Shutdown sterben würde.

Als Referenz für jeden, der diese Frage findet (und um die Idee in meinem Kopf zu zementieren), werde ich eine Prozedur aufschreiben, die ich gefunden habe, die lange nach der Entdeckung des initramfs funktionieren würde.

Sie müssen zu einer Version von gpg zurückkehren, bevor Sie das externe Programm pinestry für die Passworteingabe verwenden. Soweit ich weiß, ist das mit Version 2 passiert. Angenommen, Sie haben gerade eine Linux-Installation, dann sollten Sie eine statisch kompilierte Version von gpg <2.0 bekommen.

Dies ist sehr einfach mit Gentoo zu tun, da nur der folgende Befehl benötigt wird:

USE="static" emerge -a1 "<gnupg-2"

Stellen Sie sicher, dass Sie es verwenden ldd um zu bestätigen, dass sie tatsächlich statisch sind, bevor Sie sie auf Ihren USB-Stick kopieren, damit Sie sie während der Installation verwenden können.

Auf anderen Distributionen schlage ich vor, dass Sie sich @ Ihren Paketmanager ansehen, und wenn das nicht funktioniert, würde ich versuchen, die Quellen herunterzuladen und von ihnen zu kompilieren.


3
2018-06-11 23:13