web-dev-qa-db-ja.com

GnuPG 2.2は秘密鍵のインポートを拒否します:「エージェントへのエラー送信:操作がキャンセルされました」

秘密鍵を持つコンピューターに接続して実行することにより、秘密鍵を含むPGPIDを新しいコンピューターにインポートしようとしています。

ssh othercomputer cat myself.gpg | gpg2 --import

これを行うと、GPGは公開鍵をインポートしているように見えますが、秘密鍵はインポートしていません。出力を詳しく調べると、「エージェントへのエラー送信:操作がキャンセルされました」と表示されていることがわかります。これは問題と関係があると思います。

私が持っています

  • pinentry-programgpg-agent.confを指定してみました。
  • gpg-agentを再起動し、実行中であることをトリプルチェックしました。そして
  • gpg-agentとgpgのバージョンが一致することを確認しました。
4
kqr

問題は、GnuPGがパイプ内、つまり非対話型シェルで実行されていることを検出することだと思います。非対話型とは、ユーザーが対話していないことを意味するため、少なくともほとんどの場合、ピン入力ダイアログを表示しても意味がありません。

最も簡単な解決策は、ローカルドライブにmyself.gpgを保存してから、別のコマンドでインポートすることです。このソリューションはプライバシーと機密性の面でいくつかの影響を与える可能性があることを理解しているので、盲目的にアドバイスに従う前に、この選択の結果を理解してください。

2
kqr