gpg-agentを使用したgpgはパスフレーズを要求しません


17

gpg-agentを実行せずに、パスフレーズを入力して署名します。

$ echo 123 | gpg -s

You need a passphrase to unlock the secret key for
user: "Mr. Ops <ops@bxxx.com>"
2048-bit RSA key, ID 20F31903, created 2014-03-13

gpg: gpg-agent is not available in this session
Enter passphrase:

正常に動作します。しかし、パスフレーズを常に入力したくないので、gpg-agentを実行します。

$  eval $(gpg-agent --daemon)

これで、パスフレーズの入力を少なくとも1回求められるはずですが、私はそうではなく、gpgを使用するすべての操作が失敗します。

$ echo 123 | gpg -s

You need a passphrase to unlock the secret key for
user: "Mr. Ops <ops@bxxxx.com>"
2048-bit RSA key, ID 20F31903, created 2014-03-13

gpg: cancelled by user
gpg: no default secret key: bad passphrase
gpg: signing failed: bad passphrase

パスフレーズをエージェントに保存するにはどうすればよいですか?そこに置いたら、ログインセッション間でどのように保持しますか?(理想的には、再びプロンプトを表示することはありません。)これは、Ubuntu 12.04.4で標準のapt-get gpgパッケージを使用して、問題が発生した場合に備えています。

回答:


18

これは、gpg-agentプロンプトを出すTTYがわからない場合に発生します。これは、stdinをリダイレクトしているためにここで発生しています。

あなたは置くことができexport GPG_TTY=$(tty)、あなたに~/.bashrcセットアップするために、各ログインシェルのためのTTYを。

上のドキュメントにgpg-agent詳細があります。


7

ちょっと遅いですが、現時点では、PC(Linux-Centos)にリモートログインしてPGPファイルを復号化しようとすると、この問題に直面します。私はこれを見つけたグーグル、運なしで、デイブの提案を試みました

gpg:ユーザーによりキャンセルされました

この部分は私の問題を解決します:

最後に、他の人がttyでr + wを許可した後、この問題を解決するようです

[root @ host〜]#chmod o + rw $(tty)

これが他の誰かに役立つことを願っています。

BR。


これは機能します。.ユーザーにsuを実行する前にchmod ttyの部分を実行するだけです
-user169015

これは安全ではありません-ttyが正しいユーザーに所有されていることを確認するか、必要なユーザーとグループ権限を持つグループを使用する必要があります:)
Legooolas
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.