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で何が起こっているのか理解してもらえますか?
tar
のgpg2
はMac OS X上をし、ビーゴの答えは私のためにそれを解決しました。