ローカルマシンからリモートサーバーへのバックアップを設定しています。
ローカルマシンでgpgキーを生成し、次のコマンドでテストバックアップを実行しました。
PASSPHRASE="MyGPGPassphrase" duplicity --encrypt-key KeyID test scp://user@server/path
バックアップは正常に機能しているようです。サーバー上に3つのファイルが作成されます。
私の問題は、復元を機能させることができないことです。
ローカルマシン上のテストファイルを削除し、次のコマンドで復元しようとしました。
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
の出力には、-encrypt-keyで指定されたものとは異なるKeyIDがリストされます。キーリングに記載されているキーがありません。
問題は、リンクされた投稿で述べられているように、gpg2.1がキー認証のためにパイプからパスフレーズを廃止することです。
復元を機能させるには、gpgエージェントを有効にして構成する必要があります。
以下を~/.gnupg/gpg.conf
に追加します。
use-agent
pinentry-mode loopback
そしてあなたの~/.gnupg/gpg-agent.conf
へ:
pinentry-program /usr/bin/pinentry-gtk-2
allow-loopback-pinentry
次に、echo RELOADAGENT | gpg-connect-agent
を使用してエージェントを再起動します。
キーがローカルマシン上にある場合でも、復元は機能します。ただし、インクリメンタルを作成するときにパスフレーズを要求しない理由はまだわかりません。
Sudo
を使用してduplicity
を実行すると、この問題が発生しました。これにより、root
のホームディレクトリで秘密鍵が検索されます。秘密鍵が見つからない場合、「秘密鍵がありません」というエラーが表示され、少なくとも私にとっては、その理由がすぐにはわかりませんでした。
この問題の最も簡単な解決策は、私の場合、宛先ディレクトリに正しいアクセス許可を設定することにより、Sudo
の使用を回避することでした。
Sudo
が必須の場合は、適切なGPGオプションを設定して、ユーザーのGPGキーチェーンを使用するようにする必要があります。adding--gpg-options "~user/.gnupg"
duplicityコマンドに この回答に記載
多分これは他の誰かを助けます:-)
Gpg 2.1を使用していますか?はいの場合、env varを介してパスフレーズを配信する場合は、duplicityとgpgにいくつかの追加パラメーターが必要です。
https://lists.launchpad.net/duplicity-team/msg02653.html
または、PASSPHRASEを設定しないでください。gpg-agentが要求し、秘密を記憶します。