GnuPGは秘密鍵を持っていないと文句を言うが、

GnuPGは秘密鍵を持っていないと文句を言うが、

バックアップに使用するマシンを移行しています。ファイルの暗号化/復号化には GnuPG を使用します。~/.gnupg フォルダーをエクスポートしてコピーするという 2 つの異なる方法を試して、キーを移動しました。

どちらの方法も問題なく動作するようです。gpg -kコマンドを発行すると、新しいマシンでも古いマシンと同じ出力が得られます。ただし、新しいマシンでバックアップ アーカイブを復号化しようとすると、次のエラーが発生します。

GPGError: GPG Failed, see log below: ===== Begin GnuPG log ===== gpg: setting pinentry mode 'loopback' failed: Not supported gpg: encrypted with 2048-bit RSA key, ID B5A6D4C1, created 2012-08-01 "<MY NAME REMOVED>" gpg: decryption failed: No secret key ===== End GnuPG log =====

その識別子を持つキーがあることがはっきりとわかります。

gpg -k新しいマシンでの出力:

/root/.gnupg/pubring.gpg pub rsa2048/C87A9934 2012-08-01 uid [ultimate] <MY NAME REMOVED> sub rsa2048/B5A6D4C1 2012-08-01

過去にも同じようなことを問題なくやったことがあるはずですが、何が問題なのかを解明するのを手伝ってくれる人はいませんか?

古いマシン:

  • Linux 3.16.1-1-ARCH #1 SMP PREEMPT 木 8月 14日 07:40:19 CEST 2014 x86_64 GNU/Linux
  • gpg (GnuPG) 2.0.26
  • libgcrypt 1.6.2

新しいマシン:

  • Linux 4.0.2-1-ARCH #1 SMP PREEMPT 木 5月 7日 06:47:54 CEST 2015 x86_64 GNU/Linux
  • gpg (GnuPG) 2.1.3
  • libgcrypt 1.6.3

アップデート:

gpg -K出力:

sec rsa2048/C87A9934 2012-08-01 uid [ultimate] <NAME REMOVED> ssb rsa2048/B5A6D4C1 2012-08-01

関連情報