Ошибка восстановления двойственности: нет секретного ключа

3593
Pabi

Я настраиваю резервное копирование с локального компьютера на удаленный сервер.
Я сгенерировал ключи gpg на локальной машине и запустил тестовую резервную копию с:

PASSPHRASE="MyGPGPassphrase" duplicity --encrypt-key KeyID test scp://user@server/path 

Резервное копирование работает нормально, на сервере создано три файла.

Моя проблема в том, что я не могу заставить восстановление работать.
Я удалил тестовый файл на локальной машине и попытался восстановить его с помощью:

PASSPHRASE="MyGPGPassphrase" duplicity --encrypt-key KeyID scp://user@server/path test 

Я получаю следующую ошибку:

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 ===== 

Я экспортировал ключи gpg на локальную машину:
gpg --export-secret-key KeyID > secret.key
gpg --armor --export KeyID > public.key

И импортировал их на сервер с помощью:
gpg --import secret.key
gpg --import public.key

Есть ли что-то еще, что нужно сделать, чтобы восстановление работало?

Редактировать:
Если я выполню команду без PASSPHRASE env, duplicity --encrypt-key Key D test scp://user@host/pathрезервная копия будет создана в любом случае без запроса ключевой фразы.

Вывод file duplicity-full.20151011T115714Z.vol1.difftar.gpgсписков другой KeyID, чем тот, который указан в --encrypt-key. У меня нет указанного ключа в моей связке ключей.

4
Вы уверены, что импортировали ключи нужному пользователю? GnuPG использует цепочки ключей для каждого пользователя, службы часто используют некоторых системных пользователей со своим собственным набором ключей. Jens Erat 8 лет назад 0
На удаленном компьютере есть только один пользователь (root). Pabi 8 лет назад 0
Может быть связано с [этим] (https://github.com/keybase/keybase-issues/issues/1712). Короче говоря: каким-то образом `gpg` не может запросить пароль. Daniel B 8 лет назад 0

3 ответа на вопрос

3
Pabi

The problem is, like the link ede posted stated, that gpg 2.1 retires passphrase from pipe for key auth.
The gpg agents needs to be enabled and configured for the restore to work.

Add the following to ~/.gnupg/gpg.conf:

use-agent pinentry-mode loopback 

And to your ~/gnupg/gpg-agent.conf:

pinentry-program /usr/bin/pinentry-gtk-2 allow-loopback-pinentry 

Then restart the agent with echo RELOADAGENT | gpg-connect-agent.

The restore work even if the keys are only on the local machine. I still dont get why it does not ask for the passphrase when making incremental though.

Во втором пути к файлу отсутствует точка. Это должен быть файл ~ ~ .gnupg / gpg-agent.conf (тот же каталог, что и ранее упомянутый файл). Sam 5 лет назад 2
1
ede

Are you using gpg 2.1? if yes, duplicity and gpg need some extra parameters if you want to deliver the passphrase via env var.
https://lists.launchpad.net/duplicity-team/msg02653.html

Alternatively simply do not set PASSPHRASE and gpg-agent will ask you and memorize the secret for you.

Я использую gpg 2.1.8. Если я запускаю его без ключевой фразы env: `duplicity --encrypt-key KeyID test scp: // user @ host / path`, он не запрашивает ключевую фразу, но резервная копия создается в любом случае. Pabi 8 лет назад 0
После этого вывод `file duplicity-full.20151011T115714Z.vol1.difftar.gpg` показывает другой KeyID, чем тот, который указан в --encrypt-key. У меня нет указанного ключа в моей связке ключей. Pabi 8 лет назад 0
1
Pablo

У меня была эта проблема при использовании sudoдля выполнения duplicity, которая заставляет его искать закрытый ключ в rootдомашнем каталоге. Не найдя на нем секретного ключа, появляется ошибка «Нет секретного ключа», и - по крайней мере, для меня - не сразу понятно, почему.

Самым простым решением этой проблемы было избежать использования sudo, в моем случае, установки правильных разрешений для каталога назначения.

Если sudoэто необходимо, необходимо установить соответствующие параметры GPG, чтобы он использовал цепочку ключей GPG пользователя: добавление --gpg-options "~user/.gnupg"к команде duplicity, как указано в этом ответе.

Может быть, это помогает кому-то еще :-)

Так как именно вы решили? Pimp Juice IT 6 лет назад 0
D'о. Добавил в ответ. Спасибо за указание на это. Pablo 6 лет назад 1

Похожие вопросы