Pinentryはgpg-agentとSSHで失敗します


12

Fedora 22を実行しています。GnuPGをセットアップして、Yubike NeoにあるPGP認証サブキーを使用してSSH接続を認証しようとしています。

次のようにgpg-agentを起動するsystemdユニットがあります。

/usr/bin/gpg-agent --homedir=%h/.gnupg --daemon --use-standard-socket

そして、私は構成でSSHサポートを有効にしました:

enable-ssh-support
pinentry-program /usr/bin/pinentry-gtk

セットアップの他の部分には、ファイルのキーのキーグリップ~/.gnupg/sshcontrol追加、リモートホストへの公開キーの追加、環境変数の宣言が含まれます

セットアップが機能しているように見えるさまざまなログをグローバルに見ると、SSHがキーを見つけましたが、実際にはそのキーで署名できていないことがわかります。からのログをgpg-agent見ると、pinentryプログラムの起動に失敗しており、PINコードを要求していないことがわかります。

2015-07-22 23:23:28 gpg-agent[6758] DBG: error calling pinentry: Ioctl() inappropriate for a device <Pinentry>
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_8 -> BYE
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_7 -> CAN
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_7 <- ERR 100663573 The IPC call was canceled <SCD>
2015-07-22 23:23:28 gpg-agent[6758] smartcard signing failed: Ioctl() inappropriate for a device
2015-07-22 23:23:28 gpg-agent[6758] ssh sign request failed: Ioctl() inappropriate for a device <Pinentry>

ここでわかるのは、SSHと組み合わせて使用​​すると、pinentryを呼び出すときにioctl呼び出しが失敗するということです。ただし、次を実行した場合:

$ echo "Test" | gpg2 -s

PINウィンドウが表示され、すべて正常に機能しています。

このセットアップとSSHで何が起こっているのか理解してもらえますか?


パイプへの出力しようと、エラー:「デバイスのために不適切なioctlのエージェントとの問題」私は同様のを得ていたtargpg2はMac OS X上をし、ビーゴの答えは私のためにそれを解決しました。
ケニーエビット16

回答:


17

まあ、これは私のために働いた:

export GPG_TTY=`tty`

これを追加する.bashrcか、gpgを使用する前にキックします。


10

私はGPGウェブサイト自体で答えを見つけました。エージェントは、Pinentryウィンドウを表示する画面を見つけることができませんでした。私は自分の.*shrcファイルに次のものを入れなければなりませんでした:

echo "UPDATESTARTUPTTY" | gpg-connect-agent > /dev/null 2>&1

ありがとうございました!これは問題を特定するのに役立ちました(ピンエントリウィンドウが表示されない)。ただし、上記のコマンドは機能しません。私がgpg-connect-agentそれを出力する場合can't connect to the agent: IPC connect call failed。正常にgpg-agent実行GPG_AGENT_INFOされており、環境変数が適切に設定されています。

興味深いことに、上記の問題をに追加export GPG_AGENT_INFO.bashrcましたgpg-connect-agent IPC connect call failedecho $GPG_AGENT_INFO私のシェルでは大丈夫だったので、以前はこれを追加しませんでした。

1
私は、このコマンドをコピーして、彼らは...自分のユーザーフォルダに「1」と呼ばれるファイルを持っている理由と思ったどのように多くの人々を知ってみたい
ケナンスレイマン

1
@KenanSulayman良いキャッチ。コマンドを修正しました。
Spack

2
「エージェントは、Pinentryウィンドウを表示する画面を見つけることができませんでした...」 -Lol ... 1980年代の遅延ソフトウェア。GPGを使用する人が非常に少ないのも不思議ではありません。おそらく、GPGは私が作業しているものを選択し、無駄なエラーメッセージの提供を停止する必要があります。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.