gpg akzeptiert richtige Passphrase nicht

20/08/2016 - 01:07 von Magnus Warker | Report spam
Hallo,

ich habe je ein Skript für das Backup und das Restore eines
Dateisystems, wobei die Dateien gepackt (tar), verschlüsselt (gpg) und
zerlegt (split) werden.

Das Problem: Beim Restore wird die richtige Passphrase nicht akzeptiert.

Aber der Reihe nach...


Skripte und Befehlszeilen
-

In beiden Skripts wird die komplette Kommandozeile in einer Variablen c
erzeugt und dann mit eval $c ausgeführt.

Beim Backup sieht die Kommandozeile so aus:

( tar cvz /mws/stg/bak/* | gpg -c --passphrase "Test?123!" | split -a3
-b1800G -d - /mws/dsk/tmp/2016-08-20-00-05-34.tgz.gpg- ) 2>&1 | tee
/mws/log/bak.log

Das zugehörige Restore sieht so aus:

( cat /mws/dsk/tmp/*.gpg-??? | gpg -d --passphrase Test?123! | tar tzC
/mws/dsk/tmp/test ) 2>&1 | tee /mws/log/bak.log

Dabei werden zwei Dateien erzeugt:

-rw-r--r-- 1 root root 1.8T Aug 19 12:08 2016-08-17-18-32-34.tgz.gpg-000
-rw-r--r-- 1 root root 362G Aug 19 20:05 2016-08-17-18-32-34.tgz.gpg-001


Versuche mit Restore

Beim Restore wird die Passphrase nicht akzeptiert:

gpg: decryption failed: bad key

Um einen Fehler im Skript (schnell) auszuschliessen, habe ich den Backup
gestartet, nach wenigen Sekunden mit Ctrl-C abgebrochen und den Restore
angestossen. Er begann dann mit der Auflistung der Dateien (tar), also
ging ich davon aus, dass die Passphrase akzeptiert wurde.
(Dabei wurde nur eine Datei erzeugt.)

Lasse ich das Skript aber zu Ende laufen, wird beim Restore die
Passphrase nicht akzeptiert.
(Dabei wurden zwei Dateien erzeugt.)


bisherige Überlegungen
-

Anführungszeichen:

Mir ist folgendes klar: Im Backup-Skript wird die Passphrase mit
Anführungszeichen angegeben; im Restore-Skript nicht. Das muss ich noch
vereinheitlichen. Ich habe den Restore-Befehl aber hàndisch (= nicht mit
eval im Skript, sondern direkt an der Kommandozeile) und mit
Anführungszeichen aufgerufen, aber die Passphrase wurde auch dann nicht
akzeptiert.

Sonderzeichen:

Es scheint auch ein Problem mit dem Frage- oder Ausrufezeichen in der
Passphrase zu geben, denn wenn ich den Restore-Befehl hàndisch und mit
Anführungszeichen ausführe

( cat /mws/dsk/tmp/*.gpg-??? | gpg -d --passphrase "Test?123!" | tar tzC
/mws/dsk/tmp/test ) 2>&1 | tee /mws/log/bak.log

schreibt er unmittelbar danach

( cat /mws/dsk/tmp/*.gpg-??? | gpg -d --passphrase "Test?123"ls -la /mws
| tar tzC /mws/dsk/tmp/test ) 2>&1 | tee /mws/log/bak.log

und die Fehlermeldung

gpg: Invalid option "-la"

Ich weiss nicht, wie das "ls -ls /mws" da rein kommt, aber ich vermute
ein Problem mit den Sonderzeichen in der Passphrase.

Fragen


- Welcher Aufruf ist richtig, mit oder ohne Anführungszeichen?

- Macht es bzgl. der Anführungszeichen einen Unterschied, ob die
Befehlszeile in einer Variablen aufgebaut und diese mit eval ausgeführt
wird oder ob die Befehlszeile hàndisch in die Kommandozeile kopiert
wird? (z. B. Anführungszeichen sind Teil der Passphrase nur in einem Fall)

- Die Passphrase wird in beiden Skripts an der Kommandozeile abgefragt
und in einer Variablen gespeichert. Diese wird dann für den Aufbau der
Kommandozeile verwendet. Wenn sie besser nicht mit der Option
"--passphrase" übergeben werden soll, sondern z. B. per Pipe, wie baut
man dies dann in die beiden Befehlszeilen ein?

Da ein komplettes Backup bei mir fast zwei Tage dauert, wàre ich für
zielführende Hinweise sehr dankbar, zumal der o. g. Schnelltest (Ctrl-C)
ja offenbar nichts aussagt.

Danke
Magnus
 

Lesen sie die antworten

#1 Magnus Warker
20/08/2016 - 01:22 | Warnen spam
Nachtrag: Im Restore-Skript wird tar derzeit nur zum Testen (t)
aufgerufen. Wenn alles làuft, wird aus dem t ein x.

Ähnliche fragen