Datei via Pipes entschlüsseln, editieren, verschlüsseln?

21/03/2008 - 21:51 von H Jochim | Report spam
Hallo *,

ich möchte mir einen rudimentàren Passwort-Manager bauen, indem ich eine
GPG-verschlüsselte Textdatei entschlüssele, mit VIM bearbeite und
anschliessend wieder verschlüssele. Damit ich nichts auf die Festplatte
schreiben muss, hatte ich mir überlegt, das mit Pipes zu realisieren.

Ohne Pipes, sieht das Ganze recht einfach aus:

$ gpg -o entschluesselt.txt -d verschluesselt.gpg
$ vim entschluesselt.txt
$ gpg -e entschluesselt.txt

Mit Pipes komme ich nur soweit:

$ gpg -d verschluesselt | vim -

Das Verschlüsseln (à la gpg -d verschluesselt | vim - | gpg -e -)
funktioniert nicht.

Hat mir jemand einen Tip?

Danke

H J
 

Lesen sie die antworten

#1 Juergen P. Meier
22/03/2008 - 08:39 | Warnen spam
H Jochim :
ich möchte mir einen rudimentàren Passwort-Manager bauen, indem ich eine
GPG-verschlüsselte Textdatei entschlüssele, mit VIM bearbeite und


^^^
anschliessend wieder verschlüssele. Damit ich nichts auf die Festplatte


^^^^^^^^^^^^^^^^^^^^^^^
schreiben muss, hatte ich mir überlegt, das mit Pipes zu realisieren.



vim verwendet temporaere Dateien, in denen deine Passworte
unverschluesselt auf der Platte landet. Je nach installation in
jedermanns /tmp.

Hat mir jemand einen Tip?



Das geht so mit vim nicht. Du wirst um eine temporaere Datei
(unverschluesselt) nicht herumkommen.

Je nach Grad der Paranoia kannst du dir unter Linux aber behelfen:

Pack das folgende in ein script, dass du mit sudo ausfuehren kannst:

tfile=`mktemp`
loop=`losetup -f`
dd if=/dev/zero of=$tfile bs=1k countd 2>/dev/null
dd if=/dev/random bs%6 count=1 2>/dev/null |
losetup -k 256 -e 'aes-cbc-essiv:sha256' -p 0 $loop $tfile
mke2fs /dev/$loop 2>/dev/null
mount /dev/$loop /mnt/tmp

Dann zwinge deinen vi-editor (man vim) dazu, alle Dateien (recovery,
tempfiles, swp-files) in /mnt/tmp anzulegen, und editirere
deine passwort-datei dort in-place.

Nach dem editeren und neu-verschluesseln kannst du das cryptoloop
mit "sudo umount /mnt/tmp ; sudo losetup -d $loop ; rm $tfile"
(loop und tfile Variablen merken!) wieder loeschen.

Juergen

Ähnliche fragen