gpg --passphrase-file werkt niet onder Ubuntu

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • RemcoDelft
  • Registratie: April 2002
  • Laatst online: 03-05 10:30
Tot enkele maanden geleden gebruikte ik Gentoo Linux, en had ik een script dat backups vanaf m'n encrypted partitie via het lokale netwerk verzond naar een andere computer.
Zo dus (en het gaat om de laatste regel):
code:
1
2
3
4
5
6
7
8
9
#!/bin/bash
year=`date +%Y`
month=`date +%m`
day=`date +%d`
datum=$year\_$month\_$day
backuphost=192.168.1.10
backupdir=/home/remco/daily_backups/$datum

tar -cvvf - .mozilla | bzip2 -z -9 | gpg --batch --passphrase-file ~/.gpg_passphrase -c - | ssh $backuphost "cat > $backupdir/mozilla_$datum.tar.bz2.gpg"

Dit script bevat een aantal regels voor verschillende backups.

Ssh is zo ingesteld dat inloggen op de andere computer niet om een password vraagt. Dit script werkte prima, de passphrase-file werd vanaf disk gelezen, en stond op mijn encrypted partitie, dus dit leek me redelijk secure (namelijk: als je bij m'n encrypted partitie kan, kan je ook direct bij de betreffende data). Echter, onder Ubuntu blijft gpg met een passphrase-windowtje komen, waar ik elke keer opnieuw de passphrase moet intypen. Dit heeft er toe geleid dat ik zelden nog mijn backupscript gebruikt, wat natuurlijk een slechte zaak is.

Iemand enig idee waar ik dit moet zoeken?
Even samenvatten tot de kern van het probleem:
Dit vraagt om een passphrase, terwijl die uit een file gehaald zou moeten worden:
code:
1
cat testfile | gpg --batch --passphrase-file ~/.gpg_passphrase -c - > testfile.gpg

Acties:
  • 0 Henk 'm!

  • sam.vimes
  • Registratie: Januari 2007
  • Laatst online: 08-06 08:44
RemcoDelft schreef op zondag 25 oktober 2009 @ 18:03:
[...]
Iemand enig idee waar ik dit moet zoeken?
Even samenvatten tot de kern van het probleem:
Dit vraagt om een passphrase, terwijl die uit een file gehaald zou moeten worden:
code:
1
cat testfile | gpg --batch --passphrase-file ~/.secure/.gpg_passphrase -c - > testfile.gpg
Ik zou niet weten waarom het niet werkt. Ik denk aan een bug in Ubuntu's gnupg. Bij mij onder Debian Testing (gnupg 1.4.10-2) werkt het gewoon.
Je zou de volgende workaround kunnen proberen, maar misschien werkt die vanwege dezelfde bug ook niet:
Bash:
1
2
exec 6< ~/.secure/.gpg_passphrase
cat testfile | gpg --batch --passphrase-fd 6 -c - > testfile.gpg

Acties:
  • 0 Henk 'm!

  • BCC
  • Registratie: Juli 2000
  • Laatst online: 23:33

BCC

Je gebruikt in je voorbeeld twee verschillende paden:

~/.gpg_passphrase

en

~/.secure/.gpg_passphrase

Daarnaast wil je in een scriptje altijd het absolute pad gebruiken, dus /root/.secure/.gpg_passphrase.

Als de passphrase niet 700 gechmod is, willen sommige applicaties hem ook niet gebruiken, dus kijk daar ook even naar.

Wat gebeurt er als je het zaakje met de hand uitvoert?

[ Voor 7% gewijzigd door BCC op 26-10-2009 12:15 ]

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


Acties:
  • 0 Henk 'm!

  • RemcoDelft
  • Registratie: April 2002
  • Laatst online: 03-05 10:30
BCC schreef op maandag 26 oktober 2009 @ 12:14:
Je gebruikt in je voorbeeld twee verschillende paden:
Foutje in mijn post, niet in het scriptje. Ik had het ".secure/" wegvereenvoudigd, maar niet overal blijkbaar.
Daarnaast wil je in een scriptje altijd het absolute pad gebruiken, dus /root/.secure/.gpg_passphrase.
Het draait als user, het path is niet het probleem.[/quote]
Wat gebeurt er als je het zaakje met de hand uitvoert?
Hetzelfde!

Echter nu, de oplossing:
Ubuntu blijkt deze daemon te draaien als user: /usr/bin/gpg-agent --daemon
De reden daarvan heb ik niet uitgezocht, want `gpg --no-use-agent` zorgt dat alles weer werkt zoals gewenst :)