Konfiguruję kopię zapasową z komputera lokalnego na zdalny serwer.
Wygenerowałem klucze gpg na komputerze lokalnym i uruchomiłem testową kopię zapasową z:
PASSPHRASE="MyGPGPassphrase" duplicity --encrypt-key KeyID test scp://user@server/path
Kopia zapasowa wydaje się działać poprawnie, na serwerze tworzone są trzy pliki.
Mój problem polega na tym, że nie mogę uruchomić przywracania do pracy.
Usunąłem plik testowy na komputerze lokalnym i próbuję go przywrócić za pomocą:
PASSPHRASE="MyGPGPassphrase" duplicity --encrypt-key KeyID scp://user@server/path test
Otrzymuję następujący błąd:
Synchronizing remote metadata to local cache...
Copying duplicity-full-signatures.20151011T011134Z.sigtar.gpg to local cache.
GPGError: GPG Failed, see log below:
===== Begin GnuPG log =====
gpg: encrypted with 2048-bit RSA key, ID KeyID(of ssb), created 2015-10-11
"Name <email>"
gpg: public key decryption failed: Inappropriate ioctl for device
gpg: decryption failed: No secret key
===== End GnuPG log =====
Wyeksportowałem klucze gpg na lokalnym komputerze za pomocą:
gpg --export-secret-key KeyID > secret.key
gpg --armor --export KeyID > public.key
I zaimportowałem je na serwer za pomocą:
gpg --import secret.key
gpg --import public.key
Czy jest coś jeszcze do zrobienia, aby przywracanie działało?
Edycja:
Jeśli wykonam polecenie bez PASSPHRASE env, duplicity --encrypt-key Key D test scp://user@host/path
kopia zapasowa zostanie utworzona mimo to bez pytania o hasło.
Wyjście file duplicity-full.20151011T115714Z.vol1.difftar.gpg
list zawiera inny KeyID niż ten określony w --encrypt-key. Nie mam wymienionego klucza w moim breloku.